.printly-pages {
  color: #2b2826;
  display: grid;
  gap: 16px;
}

.printly-pages button,
.printly-pages input,
.printly-pages select {
  font: inherit;
}

.printly-pages__loading,
.printly-pages__disabled,
.printly-pages__error,
.printly-pages__empty {
  border: 1px solid #e7dfd7;
  border-radius: 14px;
  padding: 20px;
  text-align: center;
}

.printly-pages__spinner {
  animation: printly-pages-spin .8s linear infinite;
  border: 2px solid #f1d8d2;
  border-top-color: #f05a46;
  border-radius: 50%;
  display: inline-block;
  height: 18px;
  margin-inline-end: 8px;
  vertical-align: middle;
  width: 18px;
}

@keyframes printly-pages-spin {
  to { transform: rotate(360deg); }
}

.printly-pages__header,
.printly-pages__bulk-heading,
.printly-pages__card-top {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.printly-pages__header p {
  color: #f05a46;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  margin: 0 0 2px;
  text-transform: uppercase;
}

.printly-pages__header h3 {
  font-size: 22px;
  margin: 0;
}

.printly-pages__header h3 span {
  color: #817b75;
  font-size: 12px;
  font-weight: 600;
}

.printly-pages__view {
  background: #f5f1ed;
  border-radius: 10px;
  display: flex;
  padding: 3px;
}

.printly-pages__view button,
.printly-pages__card-buttons button {
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  min-height: 30px;
  padding: 5px 9px;
}

.printly-pages__view button.is-active {
  background: #fff;
  box-shadow: 0 1px 4px rgb(43 40 38 / 12%);
  color: #d84d3a;
  font-weight: 700;
}

.printly-pages__primary-actions,
.printly-pages__bulk-row {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.printly-pages__primary-actions {
  grid-template-columns: 1.25fr 1fr 1fr;
}

.printly-pages__locked {
  display: grid;
  gap: 3px;
  padding: 11px 12px;
  border: 1px solid #d7c9bb;
  border-radius: 11px;
  background: #fff8ef;
  color: #654a31;
}

.printly-pages__locked span {
  font-size: 12px;
  line-height: 1.45;
}

.printly-pages__primary-actions button,
.printly-pages__bulk button,
.printly-pages__validation button {
  align-items: center;
  background: #fff;
  border: 1px solid #ddd4cc;
  border-radius: 10px;
  color: #2b2826;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-height: 38px;
  padding: 8px 10px;
}

.printly-pages__primary-actions .printly-module-primary {
  background: #f05a46;
  border-color: #f05a46;
  color: #fff;
  font-weight: 700;
}

.printly-pages button:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.printly-pages__bulk {
  background: #fbf8f5;
  border: 1px solid #ece3db;
  border-radius: 14px;
  display: grid;
  gap: 9px;
  padding: 12px;
}

.printly-pages__bulk-heading button {
  background: none;
  border: 0;
  color: #d84d3a;
  cursor: pointer;
  font-size: 12px;
}

.printly-pages__bulk-row input[type="color"] {
  background: #fff;
  border: 1px solid #ddd4cc;
  border-radius: 10px;
  height: 38px;
  padding: 4px;
  width: 100%;
}

.printly-pages__bulk-row select,
.printly-pages__card-meta input,
.printly-pages__card-meta select {
  background: #fff;
  border: 1px solid #ddd4cc;
  border-radius: 9px;
  min-height: 38px;
  padding: 7px 9px;
  width: 100%;
}

.printly-pages__list {
  display: grid;
  gap: 10px;
}

.printly-pages__list.is-spread {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.printly-pages__card {
  background: #fff;
  border: 1px solid #e3dbd4;
  border-radius: 14px;
  min-width: 0;
  padding: 9px;
  transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.printly-pages__card.is-active {
  border-color: #f05a46;
  box-shadow: 0 0 0 2px rgb(240 90 70 / 12%);
}

.printly-pages__card.is-dragging {
  opacity: .45;
}

.printly-pages__select {
  align-self: flex-start;
  padding: 4px;
}

.printly-pages__thumb {
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(45deg, #f4f0eb 25%, transparent 25%),
    linear-gradient(-45deg, #f4f0eb 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #f4f0eb 75%),
    linear-gradient(-45deg, transparent 75%, #f4f0eb 75%),
    #fff;
  background-position: 0 0, 0 6px, 6px -6px, -6px 0;
  background-size: 12px 12px;
  border: 1px solid #e8e0d9;
  border-radius: 9px;
  cursor: pointer;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
}

.printly-pages__thumb img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.printly-pages__thumb b {
  background: rgb(43 40 38 / 82%);
  border-radius: 6px;
  bottom: 5px;
  color: #fff;
  font-size: 11px;
  inset-inline-start: 5px;
  line-height: 1;
  padding: 5px 6px;
  position: absolute;
}

.printly-pages__thumb-loading {
  align-items: center;
  color: #817b75;
  display: flex;
  font-size: 10px;
  height: 100%;
  justify-content: center;
  padding: 8px;
}

.printly-pages__card-buttons {
  align-self: flex-start;
  display: grid;
  gap: 2px;
  margin-inline-start: 5px;
}

.printly-pages__card-meta {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}

.printly-pages__required {
  align-items: center;
  color: #675f59;
  display: flex;
  font-size: 12px;
  gap: 5px;
}

.printly-pages__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.printly-pages__badge {
  background: #f1eee9;
  border-radius: 999px;
  color: #625b56;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 7px;
}

.printly-pages__badge.is-required { background: #fce4df; color: #b63828; }
.printly-pages__badge.is-error { background: #fde6e3; color: #a72d20; }
.printly-pages__badge.is-warning { background: #fff0cf; color: #825b00; }
.printly-pages__badge.is-valid { background: #e0f2e8; color: #26704c; }

.printly-pages__validation {
  border-top: 1px solid #ece3db;
  display: grid;
  gap: 8px;
  padding-top: 13px;
}

.printly-pages__validation p {
  color: #675f59;
  font-size: 12px;
  margin: 0;
}

.printly-pages__validation p[data-mode="error"] { color: #a72d20; }
.printly-pages__validation p[data-mode="warning"] { color: #825b00; }

@media (max-width: 420px) {
  .printly-pages__primary-actions {
    grid-template-columns: 1fr 1fr;
  }

  .printly-pages__primary-actions .printly-module-primary {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .printly-pages__spinner { animation: none; }
  .printly-pages__card { transition: none; }
}
