.archive-grid[data-product-grid] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.catalog-live-label { display:inline-flex; align-items:center; gap:7px; color:#4f5a50; font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.catalog-live-label::before { content:""; width:8px; height:8px; background:#5b8f3a; border-radius:50%; }
.floating-product-card { position:relative; min-height:500px; overflow:hidden; background:#e7ebe5; border:1px solid #d9dfd7; border-radius:22px; box-shadow:0 12px 30px rgba(18,23,19,.08); transform:translateZ(0); }
.floating-product-media { position:absolute; inset:0; background:#eef1ec; }
.floating-product-media::after { content:""; position:absolute; inset:52% 0 0; background:linear-gradient(transparent,rgba(10,14,11,.15)); pointer-events:none; }
.floating-product-media img { width:100%; height:100%; object-fit:cover; }
.floating-product-badge { position:absolute; z-index:2; top:16px; left:16px; padding:8px 11px; color:#141815; background:#fff; border:1px solid rgba(20,24,21,.08); border-radius:999px; box-shadow:0 6px 18px rgba(0,0,0,.08); font-size:.7rem; font-weight:950; letter-spacing:.08em; }
.floating-product-panel { position:absolute; z-index:3; left:14px; right:14px; bottom:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:end; padding:19px; color:#141815; background:#fff; border:1px solid rgba(20,24,21,.08); border-radius:18px; box-shadow:0 10px 28px rgba(0,0,0,.10); }
.floating-product-category { margin:0 0 5px; color:#6a716b; font-size:.7rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.floating-product-panel h2 { margin:0; color:#151915; font-size:1.22rem; line-height:1.16; }
.floating-product-description { max-width:45ch; margin:8px 0 0; color:#646b65; font-size:.84rem; line-height:1.42; }
.floating-product-buy { min-width:118px; display:grid; justify-items:end; gap:10px; }
.floating-product-price { margin:0; display:flex; align-items:baseline; justify-content:flex-end; gap:7px; white-space:nowrap; }
.floating-product-price strong { font-size:1.05rem; }
.floating-product-price del { color:#929792; font-size:.84rem; font-weight:650; }
.floating-quick-add { min-height:43px; padding:0 17px; color:#fff; background:#171a17; border:0; border-radius:999px; font-weight:900; cursor:pointer; white-space:nowrap; }
.floating-quick-add:hover,.floating-quick-add:focus-visible { background:#1d4d2d; }
.catalog-empty { grid-column:1/-1; min-height:280px; display:grid; place-items:center; align-content:center; gap:7px; padding:48px 28px; text-align:center; background:#fff; border:1px solid #dfe5dc; border-radius:20px; }
.catalog-empty strong { font-size:1.2rem; }
.catalog-empty span { color:#697069; }
.admin-page { background:#f1f3ef; }
.admin-shell { max-width:1320px; margin:0 auto; padding:58px 24px 90px; }
.admin-heading { max-width:760px; margin-bottom:30px; }
.admin-heading h1 { margin:6px 0 12px; font-size:clamp(2.5rem,6vw,5rem); line-height:.95; }
.admin-heading p:last-child { color:#606761; font-size:1.05rem; }
.admin-login-card,.admin-product-form,.admin-products-card { background:#fff; border:1px solid #dfe5dc; border-radius:22px; box-shadow:0 14px 40px rgba(18,23,19,.07); }
.admin-login-card { max-width:520px; padding:28px; }
.admin-login-card h2 { margin-top:0; }
.admin-login-form,.admin-product-form { display:grid; gap:16px; }
.admin-login-form label,.admin-product-form label { display:grid; gap:7px; font-weight:800; }
.admin-login-form input,.admin-product-form input,.admin-product-form select,.admin-product-form textarea { width:100%; padding:12px 13px; color:#121713; background:#fafbf9; border:1px solid #d8ded6; border-radius:10px; outline:none; }
.admin-product-form input:focus,.admin-product-form select:focus,.admin-product-form textarea:focus,.admin-login-form input:focus { border-color:#5b8f3a; box-shadow:0 0 0 3px rgba(91,143,58,.12); }
.admin-dashboard { display:grid; gap:24px; }
.admin-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:16px 20px; background:#171a17; color:#fff; border-radius:16px; }
.admin-bar div { display:grid; gap:2px; }
.admin-bar span { color:#b9c1ba; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.admin-columns { display:grid; grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr); gap:24px; align-items:start; }
.admin-product-form,.admin-products-card { padding:24px; }
.admin-form-heading { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.admin-form-heading h2 { margin:3px 0 0; }
.admin-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.admin-checkbox { display:flex !important; align-items:center; align-self:end; min-height:45px; gap:8px !important; }
.admin-checkbox input { width:auto; }
.text-button { color:#1d4d2d; background:transparent; border:0; font-weight:900; cursor:pointer; }
.admin-product-list { display:grid; gap:11px; margin-top:18px; }
.admin-product-row { display:grid; grid-template-columns:70px 1fr auto; gap:14px; align-items:center; padding:11px; border:1px solid #e2e6e0; border-radius:14px; }
.admin-product-row img { width:70px; height:70px; object-fit:cover; border-radius:10px; background:#eee; }
.admin-product-row div:nth-child(2) { display:grid; gap:4px; }
.admin-product-row span { color:#6e756f; font-size:.84rem; }
.admin-row-actions { display:flex; gap:6px; }
.admin-row-actions button { padding:8px 10px; border:1px solid #d9dfd7; border-radius:9px; background:#fff; cursor:pointer; font-weight:800; }
.admin-row-actions button:last-child { color:#a42626; }
.admin-status { max-width:800px; margin-top:18px; font-weight:800; }
.admin-status.error { color:#a42626; }
.hidden { display:none !important; }
@media (prefers-reduced-motion:no-preference) { .floating-product-card { transition:transform .16s ease,box-shadow .16s ease; } .floating-product-card:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(18,23,19,.11); } }
@media (max-width:900px) { .archive-grid[data-product-grid] { grid-template-columns:1fr; } .admin-columns { grid-template-columns:1fr; } }
@media (max-width:620px) { .floating-product-card { min-height:470px; } .floating-product-panel { grid-template-columns:1fr; } .floating-product-buy { display:flex; justify-content:space-between; align-items:center; } .floating-product-description { display:none; } .admin-form-row { grid-template-columns:1fr; } .admin-product-row { grid-template-columns:58px 1fr; } .admin-product-row img { width:58px; height:58px; } .admin-row-actions { grid-column:1/-1; } }


.floating-quick-add:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

/* Keep product photography separate from the details and purchase controls. */
.floating-product-card { min-height:0; display:flex; flex-direction:column; background:#fff; }
.floating-product-media { position:relative; inset:auto; display:block; width:100%; height:320px; padding:20px; border:0; cursor:pointer; }
.floating-product-media::after { display:none; }
.floating-product-media img { object-fit:contain; }
.product-view-hint { position:absolute; bottom:12px; right:12px; padding:8px 12px; border-radius:99px; background:#fff; color:#1d4d2d; font-size:.75rem; font-weight:800; box-shadow:0 2px 10px #0001; }
.floating-product-panel { position:static; display:flex; flex:1; flex-direction:column; align-items:stretch; gap:20px; padding:22px; border:0; border-top:1px solid #e3e8df; border-radius:0; box-shadow:none; }
.product-title-button { padding:0; border:0; background:none; font:inherit; color:inherit; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
.product-title-button:hover { color:#1d4d2d; }
.floating-product-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.floating-product-buy { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-top:auto; min-width:0; }
.floating-product-price { flex-wrap:wrap; justify-content:flex-start; }
.product-detail { width:min(880px, calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #dce3d8; border-radius:24px; color:#171a17; background:#fff; overflow:auto; box-shadow:0 24px 100px #0004; }
.product-detail::backdrop { background:rgba(12,20,14,.65); backdrop-filter:blur(5px); }
.product-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.product-detail-image { padding:30px; background:#eef1ec; display:grid; place-items:center; min-height:400px; }
.product-detail-image img { width:100%; height:400px; object-fit:contain; }
.product-detail-copy { padding:64px 32px 32px; min-width:0; }
.product-detail-copy h2 { margin:10px 0 20px; font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.15; overflow-wrap:anywhere; }
.product-detail-price { display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; }
.product-detail-price strong { font-size:1.6rem; }
.product-detail-price del { color:#757d75; }
.product-detail-description { color:#596359; line-height:1.7; white-space:pre-line; overflow-wrap:anywhere; }
.product-detail-stock { font-size:.85rem; font-weight:800; color:#35543b; margin:24px 0 12px; }
.product-detail-copy .floating-quick-add { width:100%; min-height:48px; }
.product-detail-close { position:absolute; right:14px; top:14px; z-index:2; width:40px; height:40px; border:1px solid #dce3d8; border-radius:50%; background:#fff; color:#171a17; font-size:26px; cursor:pointer; }
.product-continue { display:block; margin:16px auto 0; padding:8px; border:0; background:none; color:#4f6252; text-decoration:underline; cursor:pointer; }
.product-detail button:focus-visible,.floating-product-card button:focus-visible { outline:3px solid #598943; outline-offset:3px; }
@media (max-width:620px) {
  .floating-product-media { height:280px; }
  .product-detail-layout { grid-template-columns:1fr; }
  .product-detail-image { min-height:0; padding:24px; }
  .product-detail-image img { height:240px; }
  .product-detail-copy { padding:24px; }
}

.floating-product-card[data-product-card] { cursor:pointer; }


.admin-manager-heading {
  padding: 10px 4px 0;
}
.admin-manager-heading h2 {
  margin: 4px 0 6px;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}
.admin-manager-heading p:last-child {
  margin: 8px 0 0;
  color: #606761;
}
