:root{
  --page-bg:#0b1020; --tile-bg:#0e1424; --tile-border:#1b2336; --text:#e5e7eb; --muted:#9ca3af;
  /* width reduced to ~66% of previous 320px => ~210px */
  --card-w: 250px;
  --card-h: 140px; /* keep compact height */
  --overlay-w: 64%;      /* a bit wider panel on small width */
  --overlay-overlap: 20%;/* overlap more to save width */
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--page-bg);color:var(--text);font:14px/1.45 system-ui,Segoe UI,Roboto,Ubuntu,sans-serif}
header{padding:14px 18px;border-bottom:1px solid #141a2a;background:linear-gradient(180deg,rgba(11,16,32,.95),rgba(11,16,32,.85));position:sticky;top:0;backdrop-filter: blur(6px);z-index:10}
header h1{margin:0;font-size:16px}
.wrapper{max-width:1100px;margin:0 auto;padding:16px}

/* grid: ensure ≥4 tiles on phone */
.hive{display:grid;grid-auto-rows:minmax(var(--card-h),auto);gap:10px;justify-content:center;grid-template-columns: repeat(6, var(--card-w));}
@media (max-width:1180px){ .hive{grid-template-columns:repeat(5, var(--card-w));} }
@media (max-width:980px){ .hive{grid-template-columns:repeat(4, var(--card-w));} }
@media (max-width:760px){ .hive{grid-template-columns:repeat(3, var(--card-w));} }
@media (max-width:520px){ .hive{grid-template-columns:repeat(2, var(--card-w)); --card-w: 170px; --card-h: 124px; } }

.card{position:relative;width:var(--card-w);height:var(--card-h);border-radius:14px;background:var(--tile-bg);border:1px solid var(--tile-border);box-shadow:0 6px 24px rgba(0,0,0,.35);overflow:hidden}
.imgWrap{position:absolute;left:0;top:0;bottom:0;width:calc(100% - var(--overlay-w));display:flex;align-items:center;justify-content:center}
.spool{width:130%;height:auto;display:block;filter: drop-shadow(0 2px 1px rgba(0,0,0,.6));}

.overlay{position:absolute;top:8px;bottom:8px;right:8px;width:var(--overlay-w);
  background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);backdrop-filter: blur(1px);
  border-radius:10px;padding:6px;display:grid;grid-template-columns:1fr 1fr;gap:5px;transform: translateX(calc(-1 * var(--overlay-overlap)));
}
.badge{display:flex;align-items:center;justify-content:center;height:22px;border-radius:9px;background:#0b121e;border:1px solid #1f2a3f;color:#e8eef9;font-weight:700;font-size:11px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge.status{grid-column:1 / 2;}
.spacer{visibility:hidden}

/* buttons */
button{appearance:none;border:1px solid #334155;background:#0f172a;color:#e5e7eb;border-radius:10px;padding:8px 10px;cursor:pointer}
button.primary{background:#22d3ee;color:#09121e;border-color:#06b6d4}
.qty{min-width:80px;text-align:center;font-weight:700}
.details-link{color:#22d3ee;text-decoration:none}

/* Modal */
.dialog{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45)}
.dialog.open{display:flex}
.modal{width:min(520px,90vw);background:#0d1424;border:1px solid #1b2336;border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.6)}
.modal-header{padding:16px 18px;border-bottom:1px solid #1b2336}
.modal-title{margin:0;font-size:18px}
.modal-body{padding:14px 18px;color:var(--muted)}
.modal-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:12px 18px;border-top:1px solid #1b2336}
