/* admin_roster 组（admin/roster、admin/roster-claim）專屬樣式。
 * 全部用 app.css 的 token；class 用 ros- 前綴。兼容 iOS Safari 14：不用 inset / flex gap / aspect-ratio / :is() / dvh / color-mix。
 * admin_core.js 里新增的入口也用這里的 ros- 類（不改 pages_admin_core.css）。
 */

/* ---------------------------------------------------------------- admin/roster：搜尋 + 新增 */
.ros-top { margin: 0 var(--gutter) var(--sp-3); }
.ros-search { padding-bottom: var(--sp-3); }
.ros-search__input { width: 100%; }

/* ---------------------------------------------------------------- 名冊卡 / 認領候選卡 */
.ros-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ros-card__name {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: var(--sp-2);
  overflow-wrap: anywhere;
}
.ros-card__head .tag { flex: 0 0 auto; }
.ros-card__sub { margin-top: 2px; color: var(--label-2); overflow-wrap: anywhere; }
.ros-card__actions { margin-top: var(--sp-3); }
.ros-card__actions .btn { min-height: var(--tap); }
.ros-card__actions .tag { margin-right: var(--sp-2); }

/* ---------------------------------------------------------------- 認領頁：候選小標與空態按鈕 */
.ros-sec {
  margin: var(--sp-4) var(--gutter) var(--sp-2);
  color: var(--label-2);
  line-height: 1.35;
}
.ros-empty-actions { margin: 0 var(--gutter); }

/* ---------------------------------------------------------------- 新增彈層：底部按鈕與相似會員提示 */
.ros-sheet-actions { display: flex; }
.ros-sheet-actions .btn { flex: 1 1 0; min-width: 0; }
.ros-sheet-actions .btn + .btn { margin-left: var(--sp-3); }
.ros-similar__item { padding: var(--sp-2) 0; }
.ros-similar__item + .ros-similar__item { border-top: var(--hairline) solid var(--separator); }
.ros-similar__item .t-footnote { margin-top: 2px; overflow-wrap: anywhere; }

/* ---------------------------------------------------------------- 動效與無障礙 */
@media (prefers-reduced-motion: reduce) {
  .ros-card,
  .ros-sheet-actions .btn { transition: none; }
}
.portal-claim-card { padding: 20px; margin: 16px 0; overflow-wrap: anywhere; }
.portal-claim-card h2 { font-size: 18px; margin: 0 0 8px; }
.portal-claim-card p { margin: 8px 0; }
.portal-claim-card label { display: grid; gap: 8px; margin-top: 14px; }
.portal-claim-card textarea { width: 100%; border: 1px solid var(--separator); border-radius: 10px; padding: 10px; background: var(--glass); color: var(--label); font: inherit; }
.portal-claim-card input { width: 100%; border: 1px solid var(--separator); border-radius: 10px; padding: 10px; background: var(--glass); color: var(--label); font: inherit; }
.portal-claim-passport { display: block; max-width: 100%; max-height: 440px; object-fit: contain; margin: 12px auto; }
.portal-claim-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
