:root{--background:#f7f8f5;--surface:#fff;--surface-strong:#f1f3ee;--ink:#17211a;--muted:#667063;--line:#dfe4da;--accent:#0d6b57;--accent-strong:#084b3f;--warning:#a84417;--shadow:0 18px 50px #17211a1a}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{min-height:100%;color:var(--ink);background:linear-gradient(180deg, #fffc, #f7f8f5eb), var(--background);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:8px;min-height:48px;padding:0 18px;font-weight:700;transition:background .16s,transform .16s}button:hover{background:var(--accent-strong)}button:disabled{cursor:not-allowed;opacity:.68}button:active{transform:translateY(1px)}.secondary-button{color:var(--accent-strong);background:var(--surface-strong)}.secondary-button:hover{color:#fff}.catalog-shell{width:min(1180px,100%);margin:0 auto;padding:18px clamp(14px,3vw,28px) 40px}.catalog-topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.catalog-topbar h1{letter-spacing:0;margin:3px 0 0;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1}.eyebrow,.message-kicker{color:var(--accent-strong);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.status-pill{border:1px solid var(--line);color:var(--muted);background:#ffffffb8;border-radius:999px;flex:none;padding:9px 13px;font-size:.9rem;font-weight:800}.catalog-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;display:flex}.quote-cart-button{color:#fff;background:var(--accent);border:1px solid #0d6b5738;border-radius:999px;flex:none;padding:9px 13px;font-size:.9rem;font-weight:900}.app-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px;display:grid}.app-nav button{border:2px solid var(--line);color:var(--accent-strong);background:var(--surface)}.app-nav button:hover,.app-nav button.selected{border-color:var(--accent);color:#fff;background:var(--accent)}.toolbar{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f8f5e0;margin:0 -8px 22px;padding:8px;position:sticky;top:0}.search-form{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:12px;box-shadow:0 8px 24px #17211a12}.search-label{color:var(--muted);margin:0 0 8px;font-size:.9rem;font-weight:800;display:block}.search-row{grid-template-columns:1fr auto auto;gap:8px;display:grid}.search-row input{border:1px solid var(--line);min-width:0;min-height:48px;color:var(--ink);background:#fbfcfa;border-radius:8px;padding:0 14px}.search-row input:focus{border-color:var(--accent);outline:3px solid #0d6b572e}.product-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;display:grid}.product-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.product-card-clickable{cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s}.product-card-clickable:hover,.product-card-clickable:focus-visible{border-color:#0d6b575c;outline:none;transform:translateY(-2px);box-shadow:0 20px 54px #0d6b5726}.product-image-wrap{aspect-ratio:4/3;background:#eef1ea;place-items:center;display:grid;overflow:hidden}.product-image{object-fit:contain;width:100%;height:100%;padding:10px}.missing-image{color:var(--muted);font-weight:800}.thumbnail-row{gap:7px;padding:9px 12px 0;display:flex}.thumbnail-row img{border:1px solid var(--line);object-fit:cover;background:#f4f6f1;border-radius:6px;width:44px;height:44px}.product-content{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex}.product-meta-row{flex-wrap:wrap;gap:6px;display:flex}.product-meta-row span,.tag-row span,.variant-list span{border:1px solid var(--line);color:var(--muted);background:#f8faf6;border-radius:999px;padding:5px 8px;font-size:.74rem;font-weight:800}.product-card h2{letter-spacing:0;margin:0;font-size:1.1rem;line-height:1.25}.variant-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.variant-facts div{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;min-width:0;padding:9px}.variant-facts dt{color:var(--muted);text-transform:uppercase;margin-bottom:3px;font-size:.72rem;font-weight:800}.variant-facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.94rem;font-weight:800}.variant-list{gap:7px;display:grid}.variant-list p{color:var(--muted);margin:0;font-size:.85rem;font-weight:800}.variant-list div,.tag-row{flex-wrap:wrap;gap:6px;display:flex}.message-panel{border:1px solid var(--line);background:var(--surface);max-width:760px;box-shadow:var(--shadow);border-radius:8px;padding:clamp(20px,4vw,34px)}.message-panel h2{letter-spacing:0;margin:6px 0 10px;font-size:clamp(1.4rem,3vw,2rem)}.message-panel p,.message-panel li{color:var(--muted);line-height:1.55}.message-panel ol{margin:14px 0 0;padding-left:22px}.error-panel{border-color:#a844174d}.error-panel .message-kicker{color:var(--warning)}.message-panel pre{color:#fff7ed;background:#251d19;border-radius:8px;max-height:260px;padding:12px;font-size:.8rem;overflow:auto}.history-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;gap:14px;padding:14px;display:grid}.history-panel h2{letter-spacing:0;margin:4px 0 0;font-size:clamp(1.35rem,3vw,2rem)}.history-search-form{grid-template-columns:1fr auto auto;gap:8px;display:grid}.history-search-form input{border:1px solid var(--line);min-width:0;min-height:48px;color:var(--ink);background:#fbfcfa;border-radius:8px;padding:0 14px}.history-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.history-table{border-collapse:collapse;background:#fff;width:100%;min-width:920px}.history-table th,.history-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.history-table th{color:var(--muted);text-transform:uppercase;background:#f8faf6;font-size:.76rem;font-weight:900}.history-table td{font-size:.9rem;font-weight:700}.link-button{min-height:0;color:var(--accent-strong);text-align:left;background:0 0;border-radius:0;padding:0;font-weight:900}.link-button:hover{color:var(--accent);background:0 0;text-decoration:underline}.load-more-panel{text-align:center;place-items:center;gap:10px;padding:28px 0 8px;display:grid}.load-more-panel button{width:min(100%,340px)}.load-more-panel p{color:var(--muted);margin:0;font-weight:800}.load-more-error{color:var(--warning)!important}.modal-backdrop{z-index:20;background:#17211a9e;place-items:center;padding:14px;display:grid;position:fixed;inset:0;overflow:auto}.drawer-backdrop{z-index:24;background:#17211a94;justify-content:flex-end;display:flex;position:fixed;inset:0}.quote-drawer{border-left:1px solid var(--line);background:var(--surface);grid-template-rows:auto 1fr auto auto;width:min(540px,100%);max-height:100vh;display:grid;overflow:auto;box-shadow:-20px 0 60px #00000038}.drawer-header{z-index:1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px;display:flex;position:sticky;top:0}.drawer-header h2{letter-spacing:0;margin:4px 0 0;font-size:clamp(1.35rem,4vw,2rem);line-height:1.1}.quote-lines{align-content:start;gap:12px;padding:14px;display:grid}.quote-line{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;grid-template-columns:82px minmax(0,1fr);gap:12px;padding:10px;display:grid}.quote-line-image{aspect-ratio:1;border:1px solid var(--line);background:#eef1ea;border-radius:8px;place-items:center;display:grid;overflow:hidden}.quote-line-image img{object-fit:contain;width:100%;height:100%;padding:5px}.quote-line-main{min-width:0}.quote-line-main h3,.review-line h3,.empty-cart h3{letter-spacing:0;margin:0;font-size:1rem;line-height:1.25}.quote-line-main p,.review-line p,.empty-cart p{color:var(--muted);margin:4px 0 0;font-size:.9rem;font-weight:800;line-height:1.35}.quote-line-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 0;display:grid}.quote-line-facts div{min-width:0}.quote-line-facts dt{color:var(--muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.quote-line-facts dd{overflow-wrap:anywhere;min-width:0;margin:2px 0 0;font-size:.82rem;font-weight:900}.quote-line-actions{grid-column:1/-1;grid-template-columns:1fr auto;gap:8px;display:grid}.cart-quantity-control{grid-template-columns:48px minmax(72px,1fr) 48px}.cart-quantity-control input{min-height:48px}.danger-button{color:var(--warning);background:#a844171a}.danger-button:hover{color:#fff;background:var(--warning)}.empty-cart{text-align:center;align-content:center;place-items:center;gap:12px;min-height:360px;padding:24px;display:grid}.empty-cart button{width:min(100%,260px)}.quote-totals{border-top:1px solid var(--line);background:#f8faf6;gap:8px;padding:14px;display:grid}.quote-totals div{justify-content:space-between;align-items:center;gap:12px;display:flex}.quote-totals span{color:var(--muted);font-weight:900}.quote-totals strong{font-size:1.08rem}.drawer-actions{border-top:1px solid var(--line);background:var(--surface);grid-template-columns:1fr 1fr;gap:8px;padding:14px;display:grid}.quotation-review-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(1080px,100%);max-height:calc(100vh - 28px);overflow:auto;box-shadow:0 24px 80px #00000042}.quotation-review-body{gap:14px;padding:16px;display:grid}.quotation-panel{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;gap:12px;padding:12px;display:grid}.section-heading-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading-row h3{letter-spacing:0;margin:0;font-size:1.06rem}.section-heading-row span{color:var(--muted);font-size:.86rem;font-weight:900}.quotation-form-grid,.custom-print-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.form-field{gap:6px;min-width:0;display:grid}.form-field span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:900}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;font-weight:800}.form-field input,.form-field select{min-height:48px;padding:0 12px}.form-field textarea{resize:vertical;min-height:86px;padding:10px 12px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);outline:3px solid #0d6b572e}.form-field input[readonly]{color:var(--muted);background:var(--surface-strong)}.form-field-wide{grid-column:1/-1}.review-line-list{gap:10px;display:grid}.review-line{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px;display:grid}.review-line-total{text-align:right;justify-items:end;gap:4px;display:grid}.review-line-total span{color:var(--muted);font-size:.86rem;font-weight:800}.review-line-total strong{font-size:1rem}.review-line-total small{color:var(--muted);font-size:.76rem;font-weight:900}.quote-edit-line{grid-template-columns:84px minmax(0,1fr) minmax(130px,auto);align-items:start}.review-line-image{width:84px}.quote-edit-content{gap:10px;min-width:0;display:grid}.line-type-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.line-type-controls button{border:2px solid var(--line);color:var(--accent-strong);background:#fff}.line-type-controls button:hover,.line-type-controls button.selected{border-color:var(--accent);color:#fff;background:var(--accent)}.custom-print-fields{background:#dff2eb52;border:1px solid #0d6b5729;border-radius:8px;padding:10px}.quotation-totals{border:1px solid var(--line);background:#f8faf6;border-radius:8px;gap:8px;padding:12px;display:grid}.quotation-totals div{justify-content:space-between;align-items:center;gap:12px;display:flex}.quotation-totals span{color:var(--muted);font-weight:900}.quotation-totals strong{font-size:1.04rem}.grand-total-row{border-top:1px solid var(--line);padding-top:9px}.grand-total-row strong{color:var(--accent-strong);font-size:1.24rem}.quote-action-panel{grid-template-columns:repeat(3,minmax(0,280px));justify-content:start;align-items:start;gap:10px;display:grid}.quote-action-panel button{width:100%}.quote-action-panel .quote-notice{grid-column:1/-1}.sent-status-panel,.attachment-panel,.email-routing-panel{color:var(--accent-strong);background:#dff2eb9e;border:1px solid #0d6b5729;border-radius:8px;gap:5px;padding:12px;display:grid}.sent-status-panel span,.attachment-panel span,.email-routing-panel span{color:var(--muted);font-size:.86rem;font-weight:800}.email-routing-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.email-routing-panel div{gap:5px;min-width:0;display:grid}.email-routing-panel strong{overflow-wrap:anywhere}.email-preview-backdrop{z-index:36;background:#17211aad;place-items:center;padding:14px;display:grid;position:fixed;inset:0;overflow:auto}.email-preview-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(760px,100%);max-height:calc(100vh - 28px);overflow:auto;box-shadow:0 24px 80px #00000047}.email-preview-body{gap:14px;padding:16px;display:grid}.email-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.compact-danger-button{min-height:42px;padding:0 12px}.single-action{grid-template-columns:1fr}.product-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(1120px,100%);max-height:calc(100vh - 28px);overflow:auto;box-shadow:0 24px 80px #00000042}.modal-header{z-index:1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px;display:flex;position:sticky;top:0}.modal-header h2{letter-spacing:0;margin:4px 0 0;font-size:clamp(1.25rem,3vw,2rem);line-height:1.1}.icon-button{width:48px;min-width:48px;color:var(--ink);background:var(--surface-strong);place-items:center;padding:0;font-size:1.4rem;line-height:1;display:grid}.icon-button:hover{color:#fff}.modal-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.95fr);gap:18px;padding:16px;display:grid}.detail-gallery,.detail-content{min-width:0}.detail-gallery{align-content:start;gap:12px;display:grid}.detail-image-frame{aspect-ratio:1;border:1px solid var(--line);background:#eef1ea;border-radius:8px;place-items:center;min-height:280px;display:grid;overflow:hidden}.detail-main-image{object-fit:contain;width:100%;height:100%;padding:14px}.detail-thumbnail-row{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;display:grid}.detail-thumbnail-button{border:2px solid var(--line);background:#f8faf6;min-height:64px;padding:0}.detail-thumbnail-button.selected{border-color:var(--accent);background:#dff2ebc7}.detail-thumbnail-button img{object-fit:cover;border-radius:6px;width:100%;height:64px}.detail-status,.detail-error,.detail-muted,.quote-notice{border-radius:8px;margin:0;padding:10px 12px;font-weight:800}.detail-status,.detail-muted,.quote-notice{color:var(--accent-strong);background:#dff2ebb3}.detail-error,.quote-notice.warning{color:var(--warning);background:#a844171a}.detail-content{align-content:start;gap:14px;display:grid}.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-tags{max-height:96px;overflow:auto}.detail-section{gap:9px;display:grid}.detail-section h3{letter-spacing:0;margin:0;font-size:.96rem}.variant-option-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr));gap:8px;display:grid}.variant-option-card{border:2px solid var(--line);min-height:92px;color:var(--ink);text-align:left;background:#fbfcfa;justify-items:start;gap:5px;padding:11px;display:grid}.variant-option-card:hover,.variant-option-card.selected{border-color:var(--accent);color:var(--ink);background:#dff2ebbd}.variant-option-card span,.variant-option-card strong,.variant-option-card small{overflow-wrap:anywhere;max-width:100%}.variant-option-card span{font-weight:900}.variant-option-card small{color:var(--muted);font-size:.78rem;font-weight:800}.quantity-control{grid-template-columns:56px minmax(80px,1fr) 56px;gap:8px;display:grid}.quantity-control button{padding:0;font-size:1.35rem}.quantity-control input{border:1px solid var(--line);min-width:0;min-height:56px;color:var(--ink);text-align:center;background:#fbfcfa;border-radius:8px;padding:0 12px;font-size:1.08rem;font-weight:900}.add-to-quote-button{width:100%;min-height:56px;font-size:1rem}.skeleton-card{gap:12px;padding-bottom:14px}.skeleton-image,.skeleton-line{background:linear-gradient(90deg,#eef1ea,#f8faf6,#eef1ea) 0 0/220% 100%;animation:1.5s ease-in-out infinite pulse}.skeleton-image{aspect-ratio:4/3}.skeleton-line{border-radius:999px;height:14px;margin:0 14px}.skeleton-line.wide{width:calc(100% - 28px)}.skeleton-line.short{width:46%}@keyframes pulse{0%{background-position:0 0}to{background-position:-220% 0}}.auth-page{background:#f4f6f1;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{border:1px solid var(--line);background:#fff;border-radius:8px;gap:18px;width:min(100%,440px);padding:28px;display:grid;box-shadow:0 18px 54px #1c22181f}.auth-panel h1,.auth-panel p{margin:0}.auth-eyebrow{color:var(--accent);letter-spacing:0;font-weight:900}.auth-form{gap:14px;display:grid}.auth-form label{color:var(--muted);gap:7px;font-size:.9rem;font-weight:900;display:grid}.auth-form input{border:1px solid var(--line);min-height:52px;color:var(--ink);border-radius:8px;padding:0 12px;font-size:1rem}.auth-error{color:#7f1d1d;background:#fff1f1;border:1px solid #efb8b8;border-radius:8px;padding:12px;font-weight:800}.auth-link-button{color:#fff;background:var(--accent);border-radius:8px;justify-content:center;align-items:center;min-height:48px;padding:0 18px;font-weight:900;text-decoration:none;display:inline-flex}.signed-in-bar{color:var(--ink);border-bottom:1px solid var(--line);background:#fff;justify-content:flex-end;align-items:center;gap:14px;padding:10px clamp(16px,3vw,28px);display:flex}.signed-in-bar div{text-align:right;gap:2px;display:grid}.signed-in-bar span{font-weight:900}.signed-in-bar small{color:var(--muted);font-weight:800}.signed-in-bar button{min-height:42px;padding:0 14px}@media (max-width:700px){.signed-in-bar{flex-direction:column;align-items:stretch}.signed-in-bar div{text-align:left}.catalog-topbar{flex-direction:column;align-items:flex-start}.catalog-actions,.status-pill,.quote-cart-button{text-align:center;justify-content:stretch;align-self:stretch}.catalog-actions{width:100%;display:grid}.app-nav,.history-search-form,.search-row{grid-template-columns:1fr}.search-row button{width:100%}.product-grid{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:0}.product-modal,.quotation-review-modal{border-radius:0;width:100%;max-height:100vh}.quote-drawer{border-left:0;width:100%}.modal-layout{grid-template-columns:1fr;padding:12px}.detail-image-frame{min-height:230px}.variant-option-grid{grid-template-columns:1fr}.quote-line{grid-template-columns:72px minmax(0,1fr)}.quote-line-facts,.quote-line-actions,.drawer-actions,.review-line,.quotation-form-grid,.custom-print-fields,.email-preview-grid,.email-routing-panel,.quote-action-panel,.quote-edit-line{grid-template-columns:1fr}.email-preview-backdrop{align-items:stretch;padding:0}.email-preview-modal{border-radius:0;width:100%;max-height:100vh}.review-line-image{width:100%;max-width:120px}.line-type-controls{grid-template-columns:1fr}.review-line-total{text-align:left;justify-items:start}}
