/* admin_capsules 组（admin/capsules / admin/capsule-print）專屬樣式。
 * 全部用 app.css 的 token；class 用 acp- 前綴。兼容 iOS Safari 14：不用 inset / flex gap / aspect-ratio / :is() / dvh / color-mix。
 */

/* ---------------------------------------------------------------- 列表頁：說明 + 篩選 + 會員篩選提示 */
.acp-intro {
  margin: 0 var(--gutter) var(--sp-3);
  color: var(--label-2);
  font-size: 13px;
  line-height: 1.5;
}
.acp-filters {
  margin: 0 var(--gutter) var(--sp-2);
}
.acp-filter-label {
  margin: 0 0 var(--sp-1);
  color: var(--label-3);
  font-size: 12px;
}
.acp-chips {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
}
.acp-chip {
  min-height: var(--tap);
  margin: 0 var(--sp-2) var(--sp-2) 0;
  padding: 0 var(--sp-3);
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--fill);
  color: var(--label-2);
  font-size: 13px;
}
.acp-chip.is-selected {
  background: var(--tint-soft);
  color: var(--tint);
  font-weight: 600;
}
.acp-chip:active {
  opacity: 0.7;
}
.acp-member-tip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 var(--gutter) var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--radius);
  background: var(--tint-soft);
}
.acp-member-tip__text {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: var(--sp-2);
  color: var(--tint);
  font-size: 13px;
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-member-tip .btn {
  flex: 0 0 auto;
}

/* ---------------------------------------------------------------- 列表頁：膠囊卡片 */
.acp-card {
  margin: 0 var(--gutter) var(--sp-3);
}
.acp-card .card {
  margin: 0;
  padding: var(--sp-3);
}
.acp-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.acp-member {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: var(--sp-2);
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-tags {
  display: flex;
  flex-wrap: wrap;
  flex: 0 1 auto;
  min-width: 0;
}
.acp-tags .tag {
  margin: 2px var(--sp-2) 2px 0;
}
.acp-row2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: var(--sp-1);
}
.acp-date {
  margin: 2px var(--sp-2) 2px 0;
  color: var(--label-2);
}
.acp-meta {
  margin-top: var(--sp-1);
  color: var(--label-2);
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-meta .num {
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-actions {
  display: flex;
  flex-wrap: wrap;
  margin-top: var(--sp-3);
}
.acp-actions .btn {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 var(--sp-2) var(--sp-2) 0;
}
.acp-actions .btn--plain {
  flex: 0 1 auto;
}
.acp-actions .btn:last-child {
  margin-right: 0;
}

/* ---------------------------------------------------------------- 列印頁：起始卡 / 錯誤卡 / 信件視圖 */
.acp-page {
  padding: var(--sp-3) var(--gutter) var(--sp-5);
}
.acp-letter,
.acp-ship {
  margin: 0 0 var(--sp-3);
  padding: var(--sp-3);
}
.acp-card-block {
  margin: 0 0 var(--sp-3);
  padding: var(--sp-3);
  border-radius: var(--radius);
  background: var(--bg-elevated);
}
.acp-card-title {
  margin: 0 0 var(--sp-2);
  font-size: 17px;
  font-weight: 600;
}
.acp-hints {
  margin: 0 0 var(--sp-3);
  padding-left: 1.2em;
  color: var(--label-2);
  font-size: 13px;
  line-height: 1.6;
}
.acp-hints li {
  margin-bottom: var(--sp-1);
}
.acp-err {
  border: 1px solid var(--red-soft);
  background: var(--red-soft);
  color: var(--red-ink);
}
.acp-err__msg {
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-err__extra {
  margin-top: var(--sp-2);
  color: var(--red-ink);
  font-size: 13px;
}
.acp-letter__title {
  margin: 0 0 var(--sp-2);
  font-size: 20px;
  font-weight: 700;
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-letter__meta {
  margin: 0 0 var(--sp-1);
  color: var(--label-2);
  font-size: 13px;
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-letter__body {
  margin-top: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--separator);
  white-space: pre-wrap;
  overflow-wrap: break-word;
  word-break: break-all;
  font-size: 16px;
  line-height: 1.7;
}
.acp-ship-row {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: var(--sp-2);
  font-size: 15px;
}
.acp-ship-row:last-child {
  margin-bottom: 0;
}
.acp-ship-row__label {
  flex: 0 0 auto;
  margin-right: var(--sp-2);
  color: var(--label-2);
}
.acp-ship-row__value {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-state-line {
  margin-top: var(--sp-2);
  color: var(--label-2);
  font-size: 13px;
}
.acp-state-tags {
  display: flex;
  flex-wrap: wrap;
}
.acp-state-tags .tag {
  margin: 2px var(--sp-2) 2px 0;
}
.acp-btns {
  display: flex;
  flex-wrap: wrap;
  margin-top: var(--sp-3);
}
.acp-btns .btn {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 var(--sp-2) var(--sp-2) 0;
}
.acp-btns .btn:last-child {
  margin-right: 0;
}
.acp-sheet-desc {
  margin: 0 0 var(--sp-2);
  color: var(--label-2);
  font-size: 13px;
  overflow-wrap: break-word;
  word-break: break-all;
}
.acp-sheet-actions {
  display: flex;
}
.acp-sheet-actions .btn {
  flex: 1 1 0;
  min-width: 0;
}
.acp-sheet-actions .btn + .btn {
  margin-left: var(--sp-3);
}
.acp-stale {
  margin: 0 0 var(--sp-3);
}

/* ---------------------------------------------------------------- 列印視圖（@media print）：只留信件卡與郵寄資料卡 */
@media print {
  .topbar,
  #tabbar,
  .toast-root,
  .overlay,
  .acp-no-print,
  .acp-btns,
  .acp-hints,
  .acp-stale,
  .acp-state {
    display: none !important;
  }
  .acp-page {
    padding: 0;
  }
  .acp-letter,
  .acp-ship {
    break-inside: avoid;
    page-break-inside: avoid;
    box-shadow: none;
    border: 1px solid var(--separator);
  }
}
