:root{--bg:#f6f7fb;--muted:#6b7280}
*{box-sizing:border-box}
.bcm-wrap{background:var(--bg);padding:16px;border-radius:12px}
.bcm-title{margin:0 0 10px;font-size:20px}

.bcm-grid{display:grid;grid-template-columns:360px 1fr;gap:16px}
.bcm-panel{background:#fff;border-radius:12px;padding:12px;box-shadow:0 8px 24px rgba(15,23,42,.06)}

label{display:block;font-size:13px;color:var(--muted);margin-top:8px}
input[type=text],input[type=file],select,input[type=number],input[type=color]{
  width:100%;padding:10px;border:1px solid #e6e9ef;border-radius:8px;margin-top:6px;font-size:14px
}
.note{font-size:12px;color:var(--muted)}

.btn{padding:10px 12px;border-radius:10px;border:0;background:#111827;color:#fff;cursor:pointer;font-size:14px}
.btn.small{padding:8px 10px;font-size:12px}
.btn.secondary{background:#fff;color:#111827;border:1px solid #e6e9ef}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

/* Toolbar */
.canvas-panel .toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;overflow:auto;-webkit-overflow-scrolling:touch}
.canvas-panel .toolbar .btn{flex:0 0 auto}

/* ===== RULERS + CANVAS WRAP ===== */
.bcm-rulers{position:relative;display:inline-block}
.ruler-corner{
  position:absolute; left:0; top:0; width:22px; height:22px; background:#fafafa;
  border-right:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; z-index:11; pointer-events:none;
}
#ruler-top,#ruler-left{
  position:absolute; left:0; top:0; z-index:10; pointer-events:none; background:#fafafa;
}
#ruler-top{ height:22px; border-bottom:1px solid #e5e7eb; }
#ruler-left{ width:22px;  border-right:1px solid #e5e7eb; }

/* Guides (appear on snap) */
.guide-line{position:absolute; background:rgba(0,122,255,.75); z-index:12; pointer-events:none}
.guide-line.v{ width:1px; }
.guide-line.h{ height:1px; }

/* The canvases block — sized by JS via setDimensions(cssOnly) */
.canvas-wrap{position:relative;display:inline-block;max-width:100%; margin-left:22px; margin-top:22px}
#card-canvas,#card-canvas-back{
  display:block;
  background:linear-gradient(180deg,#fff,#fbfdff);
  border-radius:10px;
  pointer-events:auto;
}
#card-canvas-back{display:block}

/* Template gallery */
.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.tmpl-card{border:1px solid #e6e9ef;border-radius:8px;overflow:hidden;cursor:pointer;background:#fff;touch-action:manipulation}
.tmpl-card.selected{outline:2px solid #111827}
.tmpl-card img{display:block;width:100%;height:74px;object-fit:cover;background:#f7f7f9}
.thumb-fallback{display:flex;align-items:center;justify-content:center;height:74px;background:#f7f7f9;font-weight:700}
.tlabel{font-size:12px;padding:6px}

/* Mobile */
@media (max-width: 900px){
  .bcm-grid{grid-template-columns:1fr}
  .bcm-title{font-size:18px}
  label{font-size:12px}
  input[type=text],input[type=file],select,input[type=number],input[type=color]{font-size:14px}
  .btn{font-size:14px}
  .template-grid{grid-template-columns:repeat(2,1fr)}
  #template-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:45%;overflow-x:auto;gap:10px;padding-bottom:6px}
}
@media (max-width: 420px){
  #template-gallery{grid-auto-columns:70%}
  .template-grid{grid-template-columns:1fr}
  .btn.small{padding:8px 10px}
}
