*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf8f5;--card: #ffffff;--text: #1a1a1a;--text-muted: #6b6b6b;--accent: #8b5e3c;--accent-hover: #6d4630;--border: #e8e0d8;--danger: #c0392b;--success: #27ae60;--radius: 12px;--shadow: 0 2px 8px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.12)}html{font-size:15px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.login-container{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(135deg,#f5ebe0,#d5c4a1)}.login-form{background:var(--card);padding:2.5rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:360px;text-align:center}.login-logo{font-size:3rem;margin-bottom:.5rem}.login-form h1{font-size:1.4rem;font-weight:700;margin-bottom:1.5rem;color:var(--accent)}.login-form input{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:8px;font-size:1rem;margin-bottom:.75rem;outline:none;transition:border-color .2s}.login-form input:focus{border-color:var(--accent)}.login-form button{width:100%;padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.25rem}.login-form button:hover{background:var(--accent-hover)}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--danger);font-size:.85rem;margin-bottom:.5rem}.header{position:sticky;top:0;z-index:50;background:var(--card);border-bottom:1px solid var(--border);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:700;font-size:1.1rem;color:var(--accent)}.btn-logout{background:none;border:1.5px solid var(--border);padding:.4rem .8rem;border-radius:6px;font-size:.85rem;cursor:pointer;color:var(--text-muted);transition:all .2s}.btn-logout:hover{border-color:var(--accent);color:var(--accent)}.search-bar{position:sticky;top:52px;z-index:40;background:var(--bg);padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem}.search-input{flex:1;padding:.7rem 1rem;border:1.5px solid var(--border);border-radius:10px;font-size:.95rem;outline:none;background:var(--card);transition:border-color .2s}.search-input:focus{border-color:var(--accent)}.search-clear{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-muted);padding:.25rem}.filter-btn{flex-shrink:0;padding:.5rem .8rem;border:1.5px solid var(--border);border-radius:8px;background:var(--card);font-size:.8rem;font-weight:600;cursor:pointer;color:var(--text-muted);transition:all .2s;white-space:nowrap}.filter-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 .75rem 6rem}.product-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:left;display:flex;flex-direction:column;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:inherit;color:inherit;padding:0;width:100%}.product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.product-card:active{transform:scale(.97)}.product-img-wrap{position:relative;width:100%;aspect-ratio:1;background:#f0ebe4;overflow:hidden}.product-img-wrap img{width:100%;height:100%;object-fit:cover}.badge-oos{position:absolute;top:6px;left:6px;background:#c0392be6;color:#fff;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.product-info{padding:.5rem .6rem .6rem;display:flex;flex-direction:column;gap:.15rem;flex:1}.product-name{font-weight:600;font-size:.85rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-notes{font-size:.7rem;color:var(--text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-price{font-weight:700;font-size:.95rem;color:var(--accent);margin-top:auto;padding-top:.25rem}.loading,.no-results{text-align:center;padding:3rem 1rem;color:var(--text-muted);font-size:1rem}.toast{position:fixed;top:70px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:.5rem 1.2rem;border-radius:8px;font-size:.85rem;font-weight:500;z-index:200;box-shadow:var(--shadow-lg);animation:toastIn .25s ease;pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--card);border-top:1px solid var(--border);padding:.65rem 1rem;padding-bottom:max(.65rem,env(safe-area-inset-bottom));cursor:pointer;transition:box-shadow .2s;box-shadow:0 -2px 12px #00000014}.bottom-bar:hover{box-shadow:0 -4px 20px #00000024}.bottom-bar-inner{display:flex;align-items:center;justify-content:space-between;max-width:900px;margin:0 auto}.bottom-cart-info{font-size:.9rem}.bottom-total{font-weight:700;font-size:1.1rem;color:var(--accent)}.bottom-checkout{background:var(--accent);color:#fff;padding:.45rem 1rem;border-radius:8px;font-weight:600;font-size:.85rem}.cart-overlay{position:fixed;inset:0;z-index:150;background:#0006;display:flex;justify-content:flex-end;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cart-panel{background:var(--card);width:100%;max-width:420px;height:100%;display:flex;flex-direction:column;animation:slideIn .25s ease;box-shadow:-4px 0 24px #00000026}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.cart-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.cart-header h2{font-size:1.2rem;font-weight:700}.cart-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-muted);padding:.25rem}.cart-empty{text-align:center;padding:3rem;color:var(--text-muted)}.cart-items{flex:1;overflow-y:auto;padding:.75rem}.cart-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.cart-item:last-child{border-bottom:none}.cart-item-img{width:50px;height:50px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#f0ebe4}.cart-item-details{flex:1;min-width:0}.cart-item-name{display:block;font-weight:600;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-price{display:block;font-size:.8rem;color:var(--text-muted)}.cart-item-qty{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.qty-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:var(--bg);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--text);line-height:1}.qty-btn:hover{border-color:var(--accent);color:var(--accent)}.qty-num{font-weight:700;font-size:.95rem;min-width:1.5rem;text-align:center}.cart-footer{padding:1rem 1.25rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;justify-content:space-between;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.btn-clear{background:none;border:1.5px solid var(--danger);color:var(--danger);padding:.4rem .8rem;border-radius:6px;font-size:.8rem;cursor:pointer;font-weight:500;transition:all .2s}.btn-clear:hover{background:var(--danger);color:#fff}.btn-checkout{background:var(--accent);border:none;color:#fff;padding:.55rem 1.1rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.btn-checkout:hover:not(:disabled){opacity:.85}.btn-checkout:active:not(:disabled){transform:scale(.97)}.btn-checkout:disabled{opacity:.5;cursor:not-allowed}.cart-total{display:flex;align-items:center;gap:.5rem;font-size:1.1rem}.cart-total strong{color:var(--accent);font-size:1.25rem}@media (min-width: 768px){.product-grid{grid-template-columns:repeat(5,1fr);gap:1rem;padding:0 1.5rem 6rem;max-width:1200px;margin:0 auto}.search-bar{max-width:1200px;margin:0 auto;padding:1rem 1.5rem}.header{padding:.75rem 1.5rem}.product-name{font-size:.9rem}.product-notes{font-size:.75rem}}@media (min-width: 1200px){.product-grid,.search-bar{max-width:1400px}}
