:root { --fg:#1a1a1a; --muted:#777; --line:#e5e5e5; --accent:#1f6feb; --bg:#fafafa; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
       color:var(--fg); background:var(--bg); }
.container { max-width:920px; margin:0 auto; padding:2rem 1.25rem; }
.site-header { display:flex; justify-content:space-between; align-items:center;
               padding:1rem 1.25rem; border-bottom:1px solid var(--line); background:#fff; }
.site-header .brand { font-weight:700; text-decoration:none; color:var(--fg); }
.site-header nav a { margin-left:1rem; text-decoration:none; color:var(--accent); }
.site-footer { padding:1.5rem 1.25rem; border-top:1px solid var(--line);
               color:var(--muted); font-size:.875rem; text-align:center; }
.hero h1 { font-size:2rem; margin:.2rem 0 .5rem; }
.btn { display:inline-block; background:var(--accent); color:#fff; padding:.6rem 1.1rem;
       border:0; border-radius:8px; text-decoration:none; cursor:pointer; font:inherit; }
.muted { color:var(--muted); }
.error { color:#b00020; }
.auth-card { max-width:360px; margin:2rem auto; background:#fff; padding:1.5rem;
             border:1px solid var(--line); border-radius:12px; }
.auth-card label { display:block; margin:.75rem 0; }
.auth-card input { width:100%; padding:.55rem; border:1px solid var(--line); border-radius:8px; }
.inline { display:inline; } .link { background:none; border:0; color:var(--accent); cursor:pointer; }
.modules { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.6rem; }
.modules li { background:#fff; border:1px solid var(--line); border-radius:10px; padding:.8rem 1rem;
              display:flex; justify-content:space-between; align-items:center; }
.badge { font-size:.7rem; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:.1rem .5rem; }

/* admin layout */
.admin-wrap { display:grid; grid-template-columns:200px 1fr; gap:1.5rem; }
.admin-nav { display:flex; flex-direction:column; gap:.3rem; }
.admin-nav a { text-decoration:none; color:var(--fg); padding:.4rem .6rem; border-radius:8px; }
.admin-nav a:hover { background:#eef; }
.admin-main { min-width:0; }
.row-between { display:flex; justify-content:space-between; align-items:center; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.8rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:1rem; text-decoration:none; color:var(--fg); }
.card b { font-size:1.6rem; display:block; } .card span { color:var(--muted); font-size:.85rem; }

/* tables & forms */
.tbl { width:100%; border-collapse:collapse; background:#fff; }
.tbl th, .tbl td { text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl tr.archived { opacity:.5; }
.form { display:flex; flex-direction:column; gap:.5rem; max-width:520px; margin:.5rem 0 1.5rem; }
.form label { display:flex; flex-direction:column; font-size:.85rem; color:#444; }
.form input, .form select, .form textarea { padding:.45rem; border:1px solid var(--line); border-radius:7px; font:inherit; }
.form .chk { flex-direction:row; align-items:center; gap:.4rem; }
.inline-form { flex-flow:row wrap; align-items:end; max-width:none; }

/* progress */
.progress { background:#eee; border-radius:6px; height:10px; overflow:hidden; max-width:360px; margin:.4rem 0; }
.progress .bar { background:#2ea043; height:100%; }

/* catalog by category (showroom) */
.cat-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0 1.5rem; }
.cat-chips a { text-decoration:none; color:var(--fg); border:1px solid var(--line);
               border-radius:999px; padding:.3rem .9rem; font-size:.85rem; background:#fff; }
.cat-chips a:hover { border-color:var(--accent); color:var(--accent); }
.cat-section { margin:0 0 2rem; } .cat-section h2 { font-size:1.15rem; margin:.3rem 0 .8rem; }

/* product card (buyer showroom) */
.lead-desc { font-size:1.05rem; color:#333; max-width:640px; }
.specs { display:grid; grid-template-columns:max-content 1fr; gap:.25rem 1rem; max-width:640px;
         margin:1rem 0; padding:.8rem 1rem; background:#fff; border:1px solid var(--line); border-radius:10px; }
.specs dt { color:var(--muted); font-size:.85rem; } .specs dd { margin:0; font-weight:500; }
.scarcity { display:inline-block; background:#fff7ed; border:1px solid #fed7aa; color:#9a3412;
            border-radius:8px; padding:.4rem .7rem; font-size:.9rem; }
fieldset.attrs { border:1px solid var(--line); border-radius:8px; padding:.6rem .8rem; margin:.3rem 0; }
fieldset.attrs legend { color:var(--muted); font-size:.8rem; padding:0 .3rem; }

/* notes timeline */
.notes { list-style:none; padding:0; margin:.5rem 0; max-width:620px; }
.notes li { background:#fff; border:1px solid var(--line); border-left:3px solid var(--accent);
            border-radius:8px; padding:.5rem .7rem; margin-bottom:.4rem; font-size:.92rem; }

/* media & lot grids */
.media-grid { display:flex; flex-wrap:wrap; gap:.5rem; margin:.5rem 0; }
.media-grid img { border:1px solid var(--line); border-radius:8px; }
.lot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1rem; }
.lot-card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:1rem; text-decoration:none; color:var(--fg); }
.lot-card .sku { font-size:.75rem; color:var(--muted); } .lot-card .ttl { font-weight:600; margin:.2rem 0; }
