.gb-wrap { --gb-ink:#1A1A14; --gb-muted:#6B6B5E; --gb-amber:#C8860A; --gb-amber-light:#FDF3DC;
	--gb-green:#2D6A4F; --gb-green-light:#EAF4EE; --gb-red:#B83232; --gb-red-light:#FCEAEA;
	--gb-border:rgba(26,26,20,.12); --gb-cream:#F9F6EF; font-family:inherit; color:var(--gb-ink); }
.gb-toolbar { display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.25rem; }
.gb-search, .gb-toolbar select { padding:.55rem .8rem; border:1px solid var(--gb-border); border-radius:8px; font-size:.9rem; }
.gb-search { flex:1; min-width:200px; }
.gb-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1.1rem; }
.gb-card { border:1px solid var(--gb-border); border-radius:14px; overflow:hidden; cursor:pointer; background:#fff; transition:box-shadow .15s, transform .15s; }
.gb-card:hover { box-shadow:0 8px 24px rgba(0,0,0,.1); transform:translateY(-2px); }
.gb-card.gb-disabled { opacity:.55; pointer-events:none; }
.gb-thumb { height:130px; display:flex; align-items:center; justify-content:center; font-size:3rem; position:relative; background:linear-gradient(135deg,#222,#3a3a3a); }
.gb-pill { position:absolute; top:8px; right:8px; font-size:.65rem; font-weight:600; padding:3px 8px; border-radius:20px; text-transform:uppercase; }
.gb-pill-avail { background:var(--gb-green-light); color:var(--gb-green); }
.gb-pill-some  { background:var(--gb-amber-light); color:var(--gb-amber); }
.gb-pill-unavail { background:var(--gb-red-light); color:var(--gb-red); }
.gb-info { padding:.9rem 1.1rem; }
.gb-category { font-size:.7rem; text-transform:uppercase; color:var(--gb-muted); letter-spacing:.05em; }
.gb-info h3 { font-size:.92rem; margin:.2rem 0 .6rem; }
.gb-meta { display:flex; justify-content:space-between; font-size:.78rem; color:var(--gb-muted); align-items:center; }
.gb-qty { background:var(--gb-cream); border:1px solid var(--gb-border); border-radius:20px; padding:2px 8px; font-weight:600; }

.gb-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:99999; align-items:center; justify-content:center; padding:1rem; }
.gb-modal-overlay.gb-open { display:flex; }
.gb-modal { background:#fff; border-radius:14px; max-width:480px; width:100%; }
.gb-modal-head { padding:1.3rem; border-bottom:1px solid var(--gb-border); display:flex; justify-content:space-between; gap:1rem; }
.gb-modal-body { padding:1.3rem; }
.gb-modal-foot { padding:1rem 1.3rem; border-top:1px solid var(--gb-border); display:flex; justify-content:flex-end; gap:.6rem; }
.gb-close { background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--gb-muted); }
.gb-form-group { margin-bottom:1rem; }
.gb-form-group label { display:block; font-size:.78rem; font-weight:600; text-transform:uppercase; color:var(--gb-muted); margin-bottom:4px; }
.gb-input { width:100%; padding:.55rem .75rem; border:1px solid var(--gb-border); border-radius:8px; font-size:.9rem; }
.gb-form-row { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.gb-note { font-size:.78rem; color:var(--gb-muted); }
.gb-error { background:var(--gb-red-light); color:var(--gb-red); padding:.6rem .8rem; border-radius:8px; font-size:.85rem; margin-bottom:1rem; }
.gb-btn { padding:.5rem 1.1rem; border-radius:8px; border:none; cursor:pointer; font-size:.85rem; font-weight:500; }
.gb-btn-primary { background:var(--gb-ink); color:#737373; }
.gb-btn-ghost { background:transparent; border:1px solid var(--gb-border); }
.gb-toast { position:fixed; bottom:1.5rem; right:1.5rem; background:var(--gb-ink); color:#fff; padding:.7rem 1.1rem; border-radius:8px; font-size:.85rem; opacity:0; transform:translateY(20px); transition:all .25s; z-index:99999; max-width:300px; }
.gb-toast.show { opacity:1; transform:none; }
.gb-toast.success { background:var(--gb-green); }
.gb-toast.error { background:var(--gb-red); }

.gb-lookup-form { display:flex; flex-direction:column; gap:.8rem; max-width:420px; margin-bottom:1.5rem; }
.gb-lookup-results .gb-res-card { display:flex; gap:1rem; align-items:center; border:1px solid var(--gb-border); border-radius:12px; padding:1rem; margin-bottom:.7rem; }
.gb-lookup-results .gb-res-emoji { font-size:1.6rem; width:42px; height:42px; display:flex; align-items:center; justify-content:center; background:var(--gb-cream); border-radius:8px; }
.gb-lookup-results .gb-res-status { margin-left:auto; font-size:.7rem; font-weight:600; padding:3px 9px; border-radius:20px; text-transform:uppercase; }
