* { box-sizing: border-box; }
body { font-family: system-ui, sans-serif; margin: 0; padding: 0; line-height: 1.5; color: #222; }
a { color: #0066cc; }
header, footer { padding: 12px 20px; border-bottom: 1px solid #ddd; }
footer { border-top: 1px solid #ddd; border-bottom: none; margin-top: 40px; color: #666; font-size: 14px; }
/* header/nav w sklepie — shop.css */
main { max-width: 1100px; margin: 0 auto; padding: 20px; }
h1, h2, h3 { margin-top: 0; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; vertical-align: top; }
th { background: #f5f5f5; }
input, select, textarea, button { font: inherit; padding: 8px; margin: 4px 0; }
button, .btn { cursor: pointer; background: #333; color: #fff; border: none; padding: 8px 16px; text-decoration: none; display: inline-block; }
button.secondary, .btn.secondary { background: #666; }
button.danger { background: #a00; }
button:disabled { opacity: 0.5; cursor: not-allowed; }
label { display: block; margin-top: 8px; font-weight: 600; }
.form-row { margin-bottom: 12px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.card { border: 1px solid #ccc; padding: 12px; }
.card img { max-width: 100%; height: 160px; object-fit: contain; background: #fafafa; }
.card .price { font-weight: bold; margin: 8px 0; }
.msg { padding: 10px; margin: 10px 0; border: 1px solid #ccc; background: #f9f9f9; }
.msg.error { border-color: #a00; background: #fff0f0; }
.msg.ok { border-color: #080; background: #f0fff0; }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.stat-box { border: 1px solid #ccc; padding: 16px; }
.stat-box .num { font-size: 28px; font-weight: bold; }
.filters { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; margin-bottom: 20px; }
.admin-layout { display: grid; grid-template-columns: 200px 1fr; gap: 0; min-height: 100vh; }
.admin-sidebar { border-right: 1px solid #ddd; padding: 20px; background: #fafafa; }
.admin-sidebar a { display: block; padding: 8px 0; }
.admin-content { padding: 20px; }
.hidden { display: none; }

.catalog-layout { display: grid; grid-template-columns: 280px 1fr; gap: 24px; align-items: start; }
.breadcrumb { font-size: 13px; color: #666; margin-bottom: 12px; }
.breadcrumb a { color: #666; text-decoration: none; }
.breadcrumb a:hover { color: #0066cc; text-decoration: underline; }

.category-sidebar { border: 1px solid #e0e0e0; background: #fff; font-size: 14px; }
.category-sidebar-title {
  margin: 0; padding: 14px 16px 10px; font-size: 15px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.02em; border-bottom: 3px solid #a6ce37;
}
.category-all { margin: 0; padding: 10px 16px; border-bottom: 1px solid #e8e8e8; }
.category-all a { color: #222; text-decoration: none; font-weight: 600; }
.category-all a:hover, .category-all a.active { color: #5a7a18; }

.category-menu { list-style: none; margin: 0; padding: 0; }
.category-menu-item { border-bottom: 1px solid #e8e8e8; }
.category-row {
  display: flex; align-items: stretch; min-height: 44px;
}
.category-row.active { background: #f0f0f0; }
.category-link {
  flex: 1; display: flex; align-items: center; padding: 10px 12px 10px 16px;
  color: #222; text-decoration: none; line-height: 1.3;
}
.category-link:hover { color: #5a7a18; }
.category-link.upper { font-weight: 700; text-transform: uppercase; font-size: 13px; }
.category-toggle {
  flex: 0 0 44px; width: 44px; margin: 0; padding: 0; border: none; border-left: 1px solid #e8e8e8;
  background: #f5f5f5; color: #444; font-size: 20px; font-weight: 400; line-height: 1;
  cursor: pointer;
}
.category-toggle:hover { background: #ebebeb; }
.category-menu-item.open > .category-row .category-toggle { background: #e8e8e8; }
.category-submenu {
  list-style: none; margin: 0; padding: 0; display: none; background: #fafafa;
}
.category-submenu.open { display: block; }
.category-submenu .category-link { padding-left: 28px; font-size: 13px; font-weight: 400; text-transform: none; }
.category-submenu .category-submenu .category-link { padding-left: 40px; }
.category-menu-item.promo .category-link { font-weight: 400; }

.gallery-main { max-width: 100%; max-height: 400px; object-fit: contain; background: #fafafa; border: 1px solid #ddd; }
.gallery-thumbs { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.gallery-thumbs img { width: 72px; height: 72px; object-fit: contain; border: 1px solid #ccc; cursor: pointer; background: #fff; }
.gallery-thumbs img.active { border-color: #0066cc; border-width: 2px; }

@media (max-width: 800px) {
  .catalog-layout { grid-template-columns: 1fr; }
}

.pagination { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 20px 0; }
.pagination button, .pagination a.page-num {
  min-width: 40px; padding: 8px 12px; text-align: center; text-decoration: none;
  background: #fff; color: #222; border: 1px solid #ccc;
}
.pagination button:hover, .pagination a.page-num:hover { border-color: #0066cc; color: #0066cc; }
.pagination button:disabled { opacity: 0.4; cursor: not-allowed; }
.pagination a.page-num.active { background: #a6ce37; color: #222; border-color: #a6ce37; font-weight: 700; }
.pagination .pagination-info { margin-right: 8px; color: #666; font-size: 14px; }
