.acb-review-modal {
  width: min(1380px, calc(100vw - 40px));
}

.acb-review-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.acb-review-cards article {
  padding: 17px;
}

.acb-review-card-art .acb-object.acb-text > span {
  font-size: clamp(4px, .58vw, 9px) !important;
}

.acb-review-accessories > div {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.acb-review-accessories a,
.acb-accessory-suggestion {
  border: 1px solid #ffc5aa;
  background: #fff8f4;
  color: var(--acb-ink);
  text-decoration: none;
  border-radius: 8px;
  padding: 13px;
}

.acb-accessory-suggestion > * { display: block; }
.acb-accessory-suggestion > b { font-size: 13px; }
.acb-accessory-suggestion > span {
  font-size: 10px;
  color: var(--acb-muted);
  margin: 4px 0 9px;
}
.acb-accessory-suggestion > strong {
  font-size: 10px;
  color: #66717a;
}

@media (max-width: 800px) {
  .acb-review-modal { width: calc(100vw - 20px); }
  .acb-review-cards { grid-template-columns: 1fr; }
}

.acb-processing-overlay {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(23, 32, 42, .88);
}

.acb-processing-overlay > div {
  width: min(480px, 100%);
  padding: 34px;
  border-radius: 14px;
  border-top: 6px solid var(--acb-orange);
  background: #fff;
  text-align: center;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .45);
}

.acb-processing-overlay i {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 18px;
  border: 5px solid #e2e6e8;
  border-top-color: var(--acb-orange);
  border-radius: 50%;
  animation: acb-processing-spin .8s linear infinite;
}

.acb-processing-overlay h2 { margin: 0 0 8px; font-size: 25px; }
.acb-processing-overlay p { margin: 0 0 9px; font-size: 15px; font-weight: 700; }
.acb-processing-overlay small { color: var(--acb-muted); font-size: 12px; }

@keyframes acb-processing-spin { to { transform: rotate(360deg); } }

.acb-card-canvas.landscape .acb-cut-guide { inset: 5.56% 3.50%; }
.acb-card-canvas.portrait .acb-cut-guide { inset: 3.50% 5.56%; }
.acb-card-canvas,
.acb-template-card,
.acb-review-card-art { container-type: inline-size; }
.acb-object.acb-image { overflow: hidden; }

.acb-crop-modal {
  width: min(900px, calc(100vw - 40px));
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .55);
}
.acb-crop-modal > header { display:flex;justify-content:space-between;gap:20px;padding:22px 26px;border-bottom:1px solid var(--acb-line); }
.acb-crop-modal > header h2 { margin:0 0 5px;font-size:27px; }
.acb-crop-modal > header p:last-child { margin:0;color:var(--acb-muted);font-size:13px; }
.acb-crop-modal > header > button { width:42px;height:42px;border:1px solid var(--acb-line);border-radius:50%;background:#fff;font-size:25px; }
.acb-crop-body { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);gap:25px;padding:26px;background:#f2f4f5; }
.acb-crop-preview { position:relative;min-height:390px;background:#dfe3e5;overflow:hidden;box-shadow:inset 0 0 0 1px #c9cfd3; }
.acb-crop-preview img { width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transform-origin:center; }
.acb-crop-controls { background:#fff;border-radius:9px;padding:18px; }
.acb-crop-controls label { display:block;font-size:12px;font-weight:700;margin-bottom:19px; }
.acb-crop-controls output { float:right;color:var(--acb-orange); }
.acb-crop-controls input { display:block;width:100%;margin-top:9px;accent-color:var(--acb-orange); }
.acb-crop-controls button { width:100%;border:1px solid var(--acb-line);border-radius:6px;background:#fff;padding:10px;font-weight:700; }
.acb-crop-modal > footer { display:flex;justify-content:flex-end;gap:9px;padding:15px 26px; }
.acb-crop-modal > footer button { border:1px solid var(--acb-line);border-radius:6px;background:#fff;padding:10px 16px;font-weight:700; }
.acb-crop-modal > footer button.primary { background:var(--acb-orange);border-color:var(--acb-orange);color:#fff; }
@media(max-width:700px){.acb-crop-body{grid-template-columns:1fr}.acb-crop-preview{min-height:280px}}

.acb-crop-workspace {
  position: relative;
  min-height: 500px;
  overflow: hidden;
  background: #252a2e;
  touch-action: none;
}
.acb-crop-workspace > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
}
.acb-crop-box {
  position: absolute;
  cursor: move;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2000px rgba(0, 0, 0, .58), 0 0 0 1px #fe5000;
  touch-action: none;
}
.acb-crop-box::before,
.acb-crop-box::after,
.acb-crop-box > span::before,
.acb-crop-box > span::after {
  content: "";
  position: absolute;
  background: rgba(255,255,255,.75);
}
.acb-crop-box::before { left: 33.333%; top: 0; bottom: 0; width: 1px; }
.acb-crop-box::after { left: 66.666%; top: 0; bottom: 0; width: 1px; }
.acb-crop-box > span::before { top: 33.333%; left: 0; right: 0; height: 1px; }
.acb-crop-box > span::after { top: 66.666%; left: 0; right: 0; height: 1px; }
.acb-crop-box > i {
  position: absolute;
  right: -9px;
  bottom: -9px;
  width: 18px;
  height: 18px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--acb-orange);
  cursor: nwse-resize;
}
.acb-crop-instructions { background:#fff;border-radius:9px;padding:20px;height:max-content; }
.acb-crop-instructions > b { display:block;font-size:18px;color:var(--acb-orange); }
.acb-crop-instructions > p { color:var(--acb-muted);font-size:12px;line-height:1.6; }
.acb-crop-instructions > button { width:100%;border:1px solid var(--acb-line);border-radius:6px;background:#fff;padding:10px;font-weight:700; }
@media(max-width:700px){.acb-crop-workspace{min-height:380px}}

.acb-object.acb-image { overflow: visible !important; }
.acb-image-frame {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: transparent;
}
.acb-image-frame > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none !important;
  max-height: none !important;
  pointer-events: none;
  user-select: none;
  transform-origin: center;
}
.acb-account-save {
  margin: 18px 0 5px;
  padding: 12px;
  border: 1px solid #ffd0ba;
  border-radius: 8px;
  background: #fff8f4;
}
.acb-account-save button {
  width: 100%;
  border: 0;
  border-radius: 6px;
  padding: 10px 11px;
  background: #17202a;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
.acb-account-save small {
  display: block;
  margin-top: 7px;
  color: var(--acb-muted);
  font-size: 10px;
  line-height: 1.45;
}
