:root{color-scheme:light;--bg: #f7f7f5;--panel: #ffffff;--panel-border: #e3e2dd;--text: #1c1b18;--text-dim: #6b6a63;--accent: #b45309;--accent-strong: #92400e;--success: #15803d;--warning: #b45309;--warning-strong: #b91c1c;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}.app-shell{max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.app-header{text-align:center;margin-bottom:2rem}.brand{font-size:2.25rem;font-weight:700;margin:0;color:var(--accent-strong)}.subtitle{color:var(--text-dim);margin-top:.4rem;font-size:1.05rem}.access-gate-form{max-width:320px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:1.5rem}.access-gate-form label{font-weight:600;font-size:.9rem}.access-gate-form input{padding:.6rem .75rem;border-radius:8px;border:1px solid var(--panel-border);font-size:1rem}.access-gate-form button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1rem;font-weight:600;cursor:pointer}.access-gate-form button:disabled{opacity:.6;cursor:not-allowed}.sourcing-form{display:grid;grid-template-columns:1fr auto auto;gap:.85rem;align-items:end;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.field{display:flex;flex-direction:column;gap:.35rem}.field-label{font-size:.8rem;color:var(--text-dim)}.field input,.field textarea{border:1px solid var(--panel-border);border-radius:8px;padding:.65rem .75rem;font-size:.95rem;font-family:inherit;color:var(--text);background:#fff}.field textarea{resize:vertical;min-height:4.5rem}.field-project-description{grid-column:1 / -1}.summon-button{padding:.7rem 1.3rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap}.summon-button:disabled{opacity:.6;cursor:not-allowed}.status-text{color:var(--text-dim);text-align:center}.error-text{color:var(--warning-strong);text-align:center;font-weight:500}.empty-state{color:var(--text-dim);text-align:center}.extraction-issues-notice{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.85rem 1.1rem;margin-bottom:1.5rem}.extraction-issues-heading{margin:0 0 .4rem;font-weight:700;color:var(--accent-strong)}.extraction-issues-list{list-style:none;margin:0;padding:0;font-size:.88rem;color:var(--text)}.extraction-issue{margin:.2rem 0}.results-summary{text-align:center;color:var(--text-dim);margin-bottom:.35rem}.results-explainer{text-align:center;color:var(--text-dim);font-size:.85rem;margin:0 0 1.25rem}.data-freshness-badge{font-size:.85rem;color:var(--text-dim);font-style:italic}.project-results-heading{margin:0 0 1.25rem;font-size:1.3rem}.material-tabs{display:flex;gap:.4rem;margin-bottom:1.25rem;flex-wrap:wrap}.material-tab{border:1px solid var(--panel-border);background:var(--panel);color:var(--text-dim);font-size:.9rem;font-weight:600;padding:.5rem 1.1rem;border-radius:999px;cursor:pointer}.material-tab-active{border-color:var(--accent);background:var(--accent);color:#fff}.workspace-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.requirement-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.requirement-card-header{margin-bottom:1rem}.requirement-card-heading{margin:0 0 .3rem;font-size:1.15rem;text-transform:capitalize}.requirement-card-quantity{margin:0;color:var(--text-dim);font-size:.9rem}.requirement-card-unqualified{color:var(--text-dim);font-size:.85rem;font-style:italic;margin:0 0 1rem}.requirement-card-tradeoff{margin:1rem 0 0;font-size:.83rem;color:var(--text);font-style:italic}.product-option-group{border:none;margin:0;padding:0}.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}.product-option-list{display:grid;gap:1rem}.product-option{display:block;cursor:pointer}.product-option-radio{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.product-option-card{display:grid;grid-template-columns:140px 1fr;gap:1rem;background:var(--panel);border:2px solid var(--panel-border);border-radius:12px;padding:1rem;position:relative}.product-option:focus-within .product-option-card{outline:2px solid var(--accent);outline-offset:2px}.product-option-selected .product-option-card{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.product-option-badges{position:absolute;top:-.65rem;left:1rem;display:flex;gap:.4rem}.badge{font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.2rem .65rem;border-radius:999px;color:#fff}.badge-best-overall{background:var(--accent)}.badge-best-value{background:var(--success)}.project-cost-summary{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:1.25rem;align-self:start}.project-cost-heading{margin:0 0 1rem;font-size:1.1rem}.project-cost-lines{list-style:none;margin:0 0 1rem;padding:0}.project-cost-line{border-bottom:1px solid var(--panel-border)}.project-cost-line-button{display:grid;grid-template-columns:1fr auto;gap:.1rem .5rem;width:100%;padding:.5rem .4rem;margin:0 -.4rem;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:6px;font-size:.88rem}.project-cost-line-button:hover,.project-cost-line-button:focus-visible{background:var(--bg)}.project-cost-line-label{grid-column:1 / -1;font-weight:600;text-transform:capitalize}.project-cost-line-product{color:var(--text-dim)}.project-cost-line-unselected{font-style:italic}.project-cost-line-value{font-weight:600;text-align:right}.project-cost-total{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;padding-top:.75rem;font-size:1rem}.project-cost-total-label{font-weight:600}.project-cost-total-value{font-weight:700;font-size:1.2rem;color:var(--accent-strong)}.project-cost-count{margin:.6rem 0 0;color:var(--text-dim);font-size:.85rem}.project-cost-disclaimer{margin:.6rem 0 0;color:var(--text-dim);font-size:.78rem}@media (min-width: 900px){.workspace-grid{grid-template-columns:1fr 340px;align-items:start}.project-cost-summary{position:sticky;top:1.5rem}}.show-more-button{display:block;margin:1.25rem auto 0;border:1px solid var(--panel-border);background:var(--panel);color:var(--accent-strong);font-weight:600;font-size:.9rem;padding:.55rem 1.2rem;border-radius:999px;cursor:pointer}.result-card-media{width:140px;height:140px;border-radius:8px;overflow:hidden;background:#f1f0ec;display:flex;align-items:center;justify-content:center}.result-card-media img{width:100%;height:100%;object-fit:contain}.result-card-media-placeholder{width:100%;height:100%;background:repeating-linear-gradient(45deg,#eceae3,#eceae3 10px,#f4f3ee 10px,#f4f3ee 20px)}.result-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.result-card-name{margin:0;font-size:1.05rem;line-height:1.3}.result-card-score{flex:none;font-weight:700;font-size:.95rem;color:var(--success);background:#ecfdf3;border-radius:999px;padding:.15rem .6rem}.result-card-meta{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-dim);margin:.4rem 0}.availability.in-stock{color:var(--success);font-weight:600}.result-card-price{font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.result-card-estimate{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:0 0 .6rem;font-size:.85rem}.result-card-estimate dt{color:var(--text-dim)}.result-card-estimate dd{margin:0;font-weight:600}.reason-list,.warning-list{list-style:none;padding:0;margin:0 0 .6rem;font-size:.83rem}.reason{color:var(--success)}.reason:before{content:"✓ "}.warning{color:var(--warning)}.warning:before{content:"⚠ "}.warning-important{color:var(--warning-strong);font-weight:600}.cta-button{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.9rem}@media (max-width: 640px){.sourcing-form,.product-option-card{grid-template-columns:1fr}.result-card-media{width:100%}}
