:root{--accent:#7a3b2e;--accent-light:#a85c3f;--bg:#f7f2ec;--surface:#fff;--border:#e3d8cc;--text:#2c221c;--text-muted:#7a6f63;--danger:#b3261e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1{margin:.5rem 0;font-size:1.3rem}.page-shell{max-width:480px;margin:0 auto;padding:1rem 1rem 3rem}.shop-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;max-width:480px;margin:0 auto;padding:.75rem 1rem;display:flex;position:sticky;top:0}.shop-header-title{color:var(--text);font-weight:700;text-decoration:none}.icon-btn{width:28px;color:var(--text);background:0 0;border:none;font-size:1.2rem;text-decoration:none}.cart-btn{text-align:right;position:relative}.cart-badge{background:var(--accent);color:#fff;border-radius:50%;padding:1px 5px;font-size:.65rem;position:absolute;top:-6px;right:-8px}.search-input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;margin-bottom:1rem;padding:.7rem .9rem;font-size:.95rem}.category-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.category-card{background:var(--surface);border:1px solid var(--border);text-align:center;color:var(--text);border-radius:12px;padding:1.5rem 1rem;font-weight:600;text-decoration:none}.category-card-all{background:var(--accent);color:#fff;border-color:var(--accent)}.product-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.product-card{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;text-decoration:none;overflow:hidden}.product-card img{object-fit:cover;width:100%;height:120px;display:block}.product-card-title{padding:.5rem .6rem 0;font-size:.9rem;font-weight:600}.product-card-price{color:var(--text-muted);padding:.1rem .6rem .6rem;font-size:.85rem}.product-photo{object-fit:cover;border-radius:12px;width:100%;max-height:280px;margin-bottom:.75rem}.product-description{color:var(--text-muted);font-size:.9rem}.product-title-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.product-title-row h1{margin:0}.option-block{margin:1rem 0}.option-block-title{margin-bottom:.4rem;font-size:.9rem;font-weight:600}.required-badge{color:var(--danger);border:1px solid var(--danger);border-radius:6px;margin-left:.5rem;padding:0 5px;font-size:.7rem;font-weight:400}.option-row{align-items:center;gap:.5rem;padding:.4rem 0;font-size:.9rem;display:flex}.option-price{color:var(--text-muted);margin-left:auto}.custom-note-textarea{width:100%;margin-bottom:.4rem}.qty-row{align-items:center;gap:.75rem;margin:1rem 0;display:flex}.qty-row button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;width:32px;height:32px;font-size:1.1rem}.btn-primary,.btn-secondary{cursor:pointer;text-align:center;border:none;border-radius:10px;padding:.75rem 1.2rem;font-size:.95rem;text-decoration:none;display:block}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.5}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-block{width:100%;margin-top:.75rem}.btn-link{color:var(--accent-light);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:.85rem}.error-banner{color:var(--danger);background:#fdecea;border:1px solid #f5c6c2;border-radius:8px;margin:.75rem 0;padding:.6rem .9rem;font-size:.9rem}.closed-banner{color:#a15c00;background:#fff4e5;border:1px solid #f3d9a8;border-radius:8px;margin-bottom:1rem;padding:.6rem .9rem;font-size:.85rem}.cart-line{border-bottom:1px solid var(--border);gap:.75rem;padding:.75rem 0;display:flex}.cart-line img{object-fit:cover;border-radius:8px;width:64px;height:64px}.cart-line-info{flex:1}.cart-line-title{font-size:.9rem;font-weight:600}.cart-line-sub{color:var(--text-muted);font-size:.8rem}.cart-line-subtotal{align-self:center;font-weight:600}.cart-line-custom{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.cart-note-input{padding:.4rem .5rem;font-size:.8rem}.cart-reference-photo{object-fit:cover;border-radius:8px;width:56px;height:56px}.cart-total{border-top:2px solid var(--border);justify-content:space-between;margin-top:.5rem;padding:1rem 0;font-size:1.05rem;display:flex}.upsell-block{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.upsell-title{margin-bottom:.5rem;font-size:.9rem;font-weight:600}.upsell-list{gap:.75rem;display:flex;overflow-x:auto}.upsell-card{border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:0 0 120px;gap:.3rem;padding:.5rem;display:flex}.upsell-card img{object-fit:cover;border-radius:6px;width:100%;height:80px}.upsell-card-title{font-size:.8rem}.upsell-card-price{color:var(--text-muted);font-size:.8rem}.my-order-card{border-bottom:1px solid var(--border);flex-direction:column;gap:.4rem;padding:.9rem 0;display:flex}.my-order-header{justify-content:space-between;font-size:.95rem;display:flex}.review-form{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.star-picker{gap:.15rem;display:flex}.star-btn{cursor:pointer;color:#d9a441;background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1}.form{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.form-row{flex-direction:column;gap:.35rem;display:flex}.form-row label{color:var(--text-muted);font-size:.85rem}input,select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:.6rem .75rem;font-family:inherit;font-size:.95rem}.checkout-total{color:var(--text-muted)}.order-confirmation{text-align:center;padding-top:3rem}.order-confirmation-icon{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1rem;font-size:1.6rem;display:flex}.order-number{font-size:1.1rem;font-weight:700}.order-items{text-align:left;color:var(--text-muted);margin:1rem 0;padding:0;font-size:.9rem;list-style:none}.hint{color:var(--text-muted);font-size:.85rem}.order-payment-block{text-align:left;border-top:1px solid var(--border,#e5e5e5);margin-top:1rem;padding-top:1rem}
