:root{--bg:#faf8f5;--card:#fff;--ink:#1f1d1a;--mute:#7a746b;--line:#e6e1d9;--accent:#8a5a2b;--accent-ink:#fff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:inherit}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{font-size:20px;font-weight:700;text-decoration:none;letter-spacing:.3px}
.top-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-block;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:9px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.sm{padding:6px 12px}
.btn.danger{background:#b3261e;border-color:#b3261e}
.btn:disabled{opacity:.5;cursor:default}
.badge{background:#fff;color:var(--accent);border-radius:10px;padding:0 7px;margin-left:4px;font-size:13px}
.cats{display:flex;gap:8px;overflow-x:auto;padding:14px 20px 4px;scrollbar-width:thin}
.cats button{white-space:nowrap;border:1px solid var(--line);background:var(--card);padding:7px 14px;border-radius:20px;font:inherit;cursor:pointer}
.cats button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cats small{opacity:.6}
.filters{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px}
.filters input,.filters select,.form input,.form select,.tbl input,.tbl select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;min-width:0}
.filters input{flex:1 1 220px}
.count{margin:0;padding:0 20px;color:var(--mute)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;padding:16px 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.card>img{width:100%;aspect-ratio:1;object-fit:cover;cursor:zoom-in;background:#eee;display:block}
.meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}
.row{display:flex;justify-content:space-between;gap:8px}
.price{color:var(--accent);font-weight:700}
.meta small{color:var(--mute);min-height:1.2em}
.desc{font-size:13px}
.up-row{display:grid;grid-template-columns:56px 1.2fr 100px 1.5fr;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.up-row img{width:56px;height:56px;object-fit:cover;border-radius:6px}
.up-row input{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;font:inherit}
.up-row input:disabled{background:#f1eee9;color:var(--mute)}
.buy{display:flex;justify-content:space-between;align-items:center;gap:6px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.qty button{border:0;background:#f3efe9;width:30px;height:32px;font-size:17px;cursor:pointer}
.qty input{width:44px;border:0;text-align:center;font:inherit;padding:0;height:32px;-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.empty{grid-column:1/-1;text-align:center;color:var(--mute);padding:40px 0}
.pager{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;padding:10px 20px 40px}
.pager button{min-width:38px;height:38px;border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer;font:inherit;padding:0 10px}
.pager button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager button:disabled{opacity:.4;cursor:default}
.pager span{align-self:center;color:var(--mute)}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(10,9,8,.96);z-index:50;display:flex;flex-direction:column}
.lb[hidden]{display:none}
.lb-stage{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:zoom-in;user-select:none}
.lb-stage.zoomed{cursor:grab}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;will-change:transform}
.lb-close{position:absolute;top:8px;right:14px;z-index:3;background:none;border:0;color:#fff;font-size:38px;cursor:pointer}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:rgba(255,255,255,.14);color:#fff;border:0;width:46px;height:64px;font-size:22px;cursor:pointer;border-radius:8px}
.lb-nav:hover{background:rgba(255,255,255,.28)}
.lb-nav.prev{left:10px}.lb-nav.next{right:10px}
.lb-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 16px;background:#161412;color:#fff}
.lb-info{flex:1 1 180px}.lb-info small{color:#bdb5aa}
.lb-zoom button{width:34px;height:34px;border-radius:8px;border:1px solid #555;background:#26221e;color:#fff;font-size:18px;cursor:pointer;margin-right:4px}
.lb-count{color:#bdb5aa}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:24px;opacity:0;pointer-events:none;transition:.25s;z-index:99}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* cart / forms / admin */
.wrap{max-width:900px;margin:0 auto;padding:20px}
.wide{max-width:1200px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.cart-line{display:grid;grid-template-columns:64px 1fr auto auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.cart-line img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.cart-line .x{border:0;background:none;color:#b3261e;font-size:22px;cursor:pointer}
.total{display:flex;justify-content:space-between;font-size:18px;font-weight:700;padding:14px 0}
.form{display:grid;gap:10px}
.form label{display:grid;gap:4px;font-weight:600;font-size:13px}
.form input,.form select{width:100%}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.btn.wa{background:#1fa855;border-color:#1fa855}
.msg{padding:10px 14px;border-radius:8px;background:#e8f3e8;margin-bottom:12px}
.msg.err{background:#fbe4e2}
.tbl{width:100%;border-collapse:collapse;background:var(--card)}
.tbl th,.tbl td{padding:6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tbl td img{width:52px;height:52px;object-fit:cover;border-radius:6px;display:block}
.tbl input[type=text],.tbl input[type=number]{width:100%;min-width:70px}
.scroll{overflow-x:auto}
.adminnav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.adminnav a{text-decoration:none;font-weight:600}
.bulk{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}
@media(max-width:640px){
  .grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}
  .cart-line{grid-template-columns:52px 1fr auto;}
  .cart-line img{width:52px;height:52px}
  .lb-nav{width:38px;height:54px}
  .form .two{grid-template-columns:1fr}
}

/* print / pdf */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pitem{break-inside:avoid;border:1px solid #ccc;border-radius:6px;overflow:hidden}
.pitem img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.pitem div{padding:6px 8px;font-size:12px}
@media print{.noprint{display:none!important}body{background:#fff}.wrap{padding:0}}
