*,:before,:after{box-sizing:border-box}body{color:#212529;background:#f8f9fa;margin:0;font-family:system-ui,Segoe UI,sans-serif}.nav{color:#fff;background:#1a1a2e;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.nav a{color:#fff;font-weight:600;text-decoration:none}.nav-brand{font-size:1.25rem}.nav-cart{padding:.25rem .5rem;position:relative}.cart-badge{color:#fff;background:#e63946;border-radius:999px;margin-left:4px;padding:1px 6px;font-size:.7rem;display:inline-block}.main{max-width:1100px;margin:2rem auto;padding:0 1.5rem}.page h1{margin-top:0}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.product-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.product-card h2{margin:0;font-size:1rem}.price{margin:0;font-size:1.2rem;font-weight:700}.stock-ok{color:#2d6a4f;margin:0;font-size:.85rem}.stock-out{color:#e63946;margin:0;font-size:.85rem}.btn{color:#fff;cursor:pointer;background:#1a1a2e;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.9rem;font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:#e63946;padding:.6rem 1.4rem;font-size:1rem}.btn-remove{color:#6c757d;cursor:pointer;background:0 0;border:1px solid #dee2e6;border-radius:4px;padding:.25rem .6rem;font-size:.8rem}.state-msg{color:#6c757d;margin:2rem 0;font-size:1.1rem}.state-error{color:#e63946}.cart-table{border-collapse:collapse;width:100%;margin-bottom:1rem}.cart-table th{text-align:left;border-bottom:2px solid #dee2e6;padding:.5rem}.cart-table td{border-bottom:1px solid #dee2e6;padding:.5rem}.qty-input{border:1px solid #dee2e6;border-radius:4px;width:60px;padding:.25rem}.estimated-total{font-size:1.1rem}.total-note{color:#6c757d;font-size:.8rem}.alert-conflict{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.alert-conflict ul{margin:.25rem 0 0;padding-left:1.2rem}.alert-error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.order-confirmation{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem}.order-total{margin-top:1rem;font-size:1.2rem}
