:root { --bg:#f4f7fb; --surface:#fff; --ink:#1b2838; --muted:#617084; --line:#dce3ec; --brand:#0077b6; --brand-dark:#005f91; --notice:#fff8d8; --notice-line:#e9ca51; --shadow:0 8px 26px rgba(30,54,78,.09); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:5.25rem; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.45 Arial,sans-serif; }
a { color:var(--brand-dark); }
.site-header { display:flex; align-items:center; gap:18px; max-width:1440px; margin:auto; padding:24px 24px 16px; }
.brand img { display:block; max-width:180px; max-height:64px; object-fit:contain; }
.eyebrow { margin:0 0 2px; color:var(--brand); font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(1.6rem,3vw,2.2rem); }
.page-shell { max-width:1440px; margin:auto; padding:0 24px 32px; }
.notice { margin:0 0 18px; padding:12px 16px; background:var(--notice); border:1px solid var(--notice-line); border-radius:12px; }
.notice p { margin:4px 0; }
.catalog-tools { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:16px; margin:20px 0; }
.search-control { display:grid; gap:5px; font-weight:700; }
.search-control input { width:min(420px,80vw); padding:10px 12px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:8px; font:inherit; }
.legend { display:flex; flex-wrap:wrap; gap:12px; color:var(--muted); font-size:.9rem; }
.legend span { display:inline-flex; gap:6px; align-items:center; }.status-dot { width:10px; height:10px; border-radius:50%; display:inline-block; }.new { background:#168a4b; }.coming-soon { background:#d69f00; }.out-of-stock { background:#c0392b; }
.category-nav { position:sticky; top:0; z-index:10; display:flex; gap:8px; overflow-x:auto; padding:12px 0; background:var(--bg); border-bottom:1px solid var(--line); }
.category-nav a { flex:0 0 auto; padding:7px 12px; color:#fff; background:var(--brand); border-radius:999px; text-decoration:none; font-size:.88rem; font-weight:700; }.category-nav a:hover { background:var(--brand-dark); }
.category-card { margin:22px 0; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; }
.category-card summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; color:#fff; background:var(--brand); cursor:pointer; font-size:1.18rem; font-weight:700; }.category-card summary small { font-size:.8rem; font-weight:400; opacity:.9; }.category-card summary::marker { color:#fff; }
.table-scroll { overflow-x:auto; } table { width:100%; min-width:860px; border-collapse:collapse; } th,td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; } th { color:var(--muted); background:#f7f9fc; font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; } tbody tr:hover { background:#f0f8fc; }.image-cell { width:76px; }.product-image { width:58px; height:58px; display:grid; place-items:center; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; }.product-image img { max-width:100%; max-height:100%; object-fit:contain; }.image-unavailable::after { content:'No image'; color:var(--muted); font-size:.7rem; }.image-unavailable img { display:none; }.sku { white-space:nowrap; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.9rem; }.product-name { min-width:220px; }.badge { display:inline-block; margin:0 0 0 8px; padding:3px 7px; color:#fff; border-radius:99px; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.badge.coming-soon { color:#4e3900; }.release-note,.price-note { display:block; margin-top:3px; color:var(--muted); font-size:.75rem; }.price-note { color:#a03939; }.no-results { padding:18px; text-align:center; color:var(--muted); }.export-form { margin:28px 0 0; text-align:center; }.export-button { padding:11px 18px; color:#fff; background:var(--brand); border:0; border-radius:8px; cursor:pointer; font:700 1rem Arial,sans-serif; }.export-button:hover { background:var(--brand-dark); } footer { padding:24px; color:var(--muted); text-align:center; font-size:.85rem; }
@media (max-width:640px) { .site-header,.page-shell { padding-left:14px; padding-right:14px; }.site-header { gap:12px; }.brand img { max-width:112px; }.catalog-tools { align-items:stretch; }.search-control input { width:100%; }.category-card summary { padding:14px; }.legend { gap:8px; } }
