/* v52.03 — shared content UI geometry
   Goal: same tactile rhythm across CP / Status / Equipment while preserving each tool's color theme. */
:root{
  --rs-ui-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;
  --rs-ui-radius-card:14px;
  --rs-ui-radius-control:11px;
  --rs-ui-radius-small:9px;
  --rs-ui-control-h:40px;
  --rs-ui-control-h-small:34px;
  --rs-ui-content-pad:10px;
}

/* Typography is now identical in all three tools. */
body.cp-page,
body.status-page,
body.equip-page{
  font-family:var(--rs-ui-font) !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Same horizontal content rhythm. Max-width remains tool-specific on purpose. */
body.cp-page main{
  padding-left:var(--rs-ui-content-pad) !important;
  padding-right:var(--rs-ui-content-pad) !important;
}
body.status-page .container:not(.status-detail-inner){
  padding-left:var(--rs-ui-content-pad) !important;
  padding-right:var(--rs-ui-content-pad) !important;
}
body.equip-page .app-shell{
  padding-left:var(--rs-ui-content-pad) !important;
  padding-right:var(--rs-ui-content-pad) !important;
}

/* Major surfaces share the same corner language. */
body.cp-page .card,
body.status-page .pagehead,
body.status-page .search-box,
body.status-page .weapon-filter,
body.status-page .pagination,
body.status-page .manage-section,
body.status-page .character-master-panel,
body.status-page .list-wrapper,
body.equip-page .panel{
  border-radius:var(--rs-ui-radius-card) !important;
}

/* Standard form controls: same radius and focus transition, theme colors stay local. */
body.cp-page input,
body.cp-page select,
body.status-page input[type="text"],
body.status-page input[type="number"],
body.status-page select,
body.equip-page .text-input,
body.equip-page select{
  border-radius:var(--rs-ui-radius-control) !important;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

/* Normal text/select controls use a shared tap height. Compact numeric steppers are excluded. */
body.cp-page input:not(.stat-bump-input):not(.hp-bump-input):not(.cellinput):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.cp-page select,
body.status-page input[type="text"],
body.status-page select,
body.equip-page .text-input,
body.equip-page select{
  min-height:var(--rs-ui-control-h);
}

/* Primary button geometry. Color/gradient classes remain page-specific. */
body.cp-page .btn,
body.status-page .btn,
body.equip-page .button{
  min-height:var(--rs-ui-control-h);
  border-radius:var(--rs-ui-radius-control) !important;
  padding:8px 11px;
  line-height:1.2;
}
body.cp-page .btn:active,
body.status-page .btn:active,
body.equip-page .button:active{
  transform:translateY(1px);
}

/* Compact action buttons share one size tier. */
body.cp-page .btn-small,
body.status-page .btn-small,
body.equip-page .saved-actions button,
body.equip-page .page-button{
  min-height:var(--rs-ui-control-h-small);
  border-radius:var(--rs-ui-radius-small) !important;
}
body.cp-page .btn-small,
body.status-page .btn-small{
  padding:6px 9px;
  font-size:12.5px;
}

/* List / item surfaces use the same medium radius. */
body.cp-page .listitem, body.cp-page .equip-item, body.status-page .manage-style-item, body.equip-page .saved-item, body.equip-page .number-field{
  border-radius:11px !important;
}

/* Modal/dialog outer geometry. Fullscreen mobile dialogs intentionally remain square. */
body.cp-page .modal:not(.is-fullscreen),
body.status-page .status-detail-dialog,
body.equip-page .dialog-card{
  border-radius:18px !important;
}
body.cp-page .modal-head,
body.status-page .status-detail-topbar,
body.equip-page .dialog-title-row{
  gap:10px;
}

/* Shared label rhythm without changing page-specific colors. */
body.cp-page .label,
body.status-page .form-label,
body.equip-page .field-label{
  margin-bottom:6px;
}

@media (max-width:520px){
  :root{ --rs-ui-content-pad:8px; }
  body.status-page .status-detail-dialog{ border-radius:0 !important; }
  body.cp-page .modal.is-fullscreen{ border-radius:0 !important; }
}

/* =========================================================
   v52.04 — shared UI hierarchy / state language
   Second pass: headings, filters, modal chrome, empty states,
   and action semantics. Page themes remain intact.
   ========================================================= */
:root{
  --rs-ui-title-size:16px;
  --rs-ui-title-size-small:15px;
  --rs-ui-title-min-h:38px;
  --rs-ui-filter-h:40px;
  --rs-ui-modal-close:38px;
  --rs-ui-empty-min-h:72px;
}

/* ---------- Section hierarchy ---------- */
body.cp-page .rs-section-title, body.status-page .pagehead h1, body.status-page .manage-section h3, body.status-page .style-toggle-title, body.status-page .weapon-filter-title, body.status-page .collapsible-summary .title, body.status-page .detail-section-title, body.equip-page .section-heading h2, body.equip-page .dialog-title-row h2{
  font-size:var(--rs-ui-title-size) !important;
  font-weight:900 !important;
  line-height:1.3 !important;
  letter-spacing:.01em;
}

/* CP now uses the same compact heading rhythm as the other tools. */
body.cp-page .rs-section-title{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:var(--rs-ui-title-min-h);
  margin:0 0 8px;
  padding:7px 10px;
  border:1px solid rgba(147,197,253,.20);
  border-radius:var(--rs-ui-radius-control);
  background:linear-gradient(135deg,rgba(37,99,235,.14),rgba(79,70,229,.08));
  color:#f8fafc;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
body.cp-page .rs-section-title::before{
  content:"";
  width:4px;
  height:18px;
  flex:0 0 4px;
  border-radius:999px;
  background:linear-gradient(180deg,#60a5fa,#818cf8);
}
body.cp-page .rs-section-title.rs-section-title-inline{
  width:auto;
  margin-bottom:0;
}

/* Status headings keep their theme, but match the same geometry. */
body.status-page .pagehead h1,
body.status-page .manage-section h3,
body.status-page .style-toggle-title,
body.status-page .weapon-filter-title,
body.status-page .collapsible-summary .title,
body.status-page .detail-section-title{
  min-height:var(--rs-ui-title-min-h) !important;
  padding:7px 10px !important;
  gap:8px !important;
  border-radius:var(--rs-ui-radius-control) !important;
}
body.status-page .pagehead h1::before,
body.status-page .manage-section h3::before,
body.status-page .style-toggle-title::before,
body.status-page .weapon-filter-title::before,
body.status-page .collapsible-summary .title::before,
body.status-page .detail-section-title::before{
  width:4px !important;
  height:18px !important;
}

/* Equipment uses a kicker, so unify typography/spacing without removing it. */
body.equip-page .section-heading{
  gap:10px;
  margin-bottom:10px;
  padding-bottom:8px;
}
body.equip-page .section-heading h2, body.equip-page .dialog-title-row h2{
  margin-top:2px;
  margin-bottom:0;
}
body.equip-page .section-kicker{
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.12em;
}

/* ---------- Secondary tabs / filters ---------- */
body.cp-page .tabs{
  gap:6px;
}
body.cp-page .tabs .tab,
body.status-page .weapon-btn,
body.equip-page .weapon-type-tab{
  min-height:var(--rs-ui-filter-h) !important;
  border-radius:var(--rs-ui-radius-control) !important;
  transition:transform .12s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, color .16s ease;
}
body.cp-page .tabs .tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px !important;
  font-size:13px;
}
body.status-page .weapon-filter-bar{
  gap:6px !important;
}
body.status-page .weapon-btn{
  padding:7px 10px !important;
}
body.equip-page .weapon-type-tabs{
  gap:6px !important;
}
body.equip-page .weapon-type-tab{
  padding:5px 2px !important;
}

/* ---------- Modal / dialog chrome ---------- */
body.cp-page .modal-title, body.equip-page .dialog-title-row h2{
  font-size:17px !important;
  font-weight:900 !important;
  line-height:1.25;
}

body.cp-page .modal-close, body.equip-page .icon-button{
  min-width:var(--rs-ui-modal-close);
  width:auto;
  height:var(--rs-ui-modal-close);
  min-height:var(--rs-ui-modal-close);
  border-radius:var(--rs-ui-radius-control) !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
body.equip-page .icon-button{
  width:var(--rs-ui-modal-close);
  padding:0;
}
body.equip-page .dialog-card{
  padding:14px;
}

/* ---------- Empty / no-result states ---------- */
body.cp-page .rs-empty-state,
body.status-page .rs-empty-state,
body.equip-page .empty-state{
  min-height:var(--rs-ui-empty-min-h);
  display:grid;
  place-items:center;
  padding:14px 16px !important;
  border:1px dashed rgba(148,163,184,.38) !important;
  border-radius:var(--rs-ui-radius-control) !important;
  background:rgba(248,250,252,.08);
  text-align:center;
  font-size:13px !important;
  line-height:1.6;
}
body.status-page .rs-empty-state,
body.equip-page .empty-state{

  background:rgba(248,250,252,.64);
}
body.cp-page .rs-empty-state{
  color:rgba(241,245,249,.84) !important;
  border-color:rgba(255,255,255,.18) !important;
}
body.cp-page td.rs-empty-cell,
body.status-page td.rs-empty-cell{
  padding:18px 12px !important;
  text-align:center !important;
  font-size:13px !important;
  line-height:1.55;
  color:var(--muted, #64748b) !important;
}
body.cp-page td.rs-empty-cell{
  color:rgba(229,231,235,.72) !important;
}

/* ---------- Action semantics ----------
   Save = primary blue, delete = danger red, neutral/reset stays neutral.
   Equipment's calculation button keeps its gold tool-specific accent. */
body.equip-page .button-save{
  border-color:#93c5fd !important;
  background:linear-gradient(135deg,#2563eb,#4f46e5) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(37,99,235,.24) !important;
}
body.equip-page .button-calc{
  border-color:#f5cf7b !important;
  background:linear-gradient(135deg,#e0a035,#bc7618) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(188,118,24,.22) !important;
}
body.cp-page .btn-danger,
body.status-page .btn-delete,
body.equip-page .delete-button{
  border-color:rgba(220,38,38,.34) !important;
}
body.status-page .btn-edit{
  border-color:rgba(21,128,61,.34) !important;
}

@media (max-width:520px){
  :root{
    --rs-ui-title-size:15px;
    --rs-ui-title-min-h:36px;
    --rs-ui-filter-h:38px;
  }
  body.cp-page .rs-section-title,
  body.status-page .pagehead h1,
  body.status-page .manage-section h3,
  body.status-page .style-toggle-title,
  body.status-page .weapon-filter-title,
  body.status-page .collapsible-summary .title,
  body.status-page .detail-section-title{
    padding:6px 9px !important;
  }
}

/* =========================================================
   v52.05 — shared list / table information density
   Third pass: row rhythm, list typography, zebra/selection states,
   pagination and tabular-number alignment across all three tools.
   Specialized editor tables keep their compact page-specific geometry.
   ========================================================= */
:root{
  --rs-ui-row-pad-y:8px;
  --rs-ui-row-pad-x:10px;
  --rs-ui-row-gap:7px;
  --rs-ui-row-radius:11px;
  --rs-ui-list-icon:40px;
  --rs-ui-name-size:13.5px;
  --rs-ui-meta-size:11px;
  --rs-ui-value-size:13.5px;
  --rs-ui-table-py:8px;
  --rs-ui-table-px:8px;
  --rs-ui-pager-h:36px;
}

/* ---------- Repeating list/card rhythm ---------- */
body.cp-page .list,
body.status-page .manage-style-list,
body.status-page .manage-char-picker-list,
body.equip-page .saved-list{
  gap:var(--rs-ui-row-gap) !important;
}

body.cp-page .listitem, body.cp-page .equip-item, body.status-page .manage-style-item, body.status-page .manage-char-option, body.equip-page .saved-item{
  border-radius:var(--rs-ui-row-radius) !important;
  transition:border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .12s ease;
}

body.cp-page .listitem, body.cp-page .equip-item{
  padding:var(--rs-ui-row-pad-y) var(--rs-ui-row-pad-x) !important;
  gap:var(--rs-ui-row-gap) !important;
}
body.status-page .manage-style-item{
  padding:var(--rs-ui-row-pad-y) var(--rs-ui-row-pad-x) !important;
  margin-bottom:0 !important;
  gap:var(--rs-ui-row-gap);
}
body.status-page .manage-char-option{
  min-height:60px;
  padding:var(--rs-ui-row-pad-y) var(--rs-ui-row-pad-x) !important;
  gap:10px !important;
}
body.equip-page .saved-item{
  padding:var(--rs-ui-row-pad-y) var(--rs-ui-row-pad-x) !important;
  gap:var(--rs-ui-row-gap) !important;
}

/* List thumbnails use one compact tier where the semantic role matches. */
body.cp-page .loadtable .avatar{
  width:var(--rs-ui-list-icon) !important;
  height:var(--rs-ui-list-icon) !important;
  border-radius:10px !important;
}
body.status-page .list-icon{
  width:var(--rs-ui-list-icon) !important;
  height:var(--rs-ui-list-icon) !important;
  margin-right:8px !important;
}
body.status-page .manage-style-thumb,
body.status-page .manage-char-option-thumb{
  width:42px !important;
  height:42px !important;
  flex-basis:42px !important;
}

/* ---------- Name / meta / value hierarchy ---------- */
body.cp-page .loadtable .namecell .nm, body.cp-page .equip-name, body.cp-page .pt-name, body.status-page .manage-style-name, body.status-page .manage-char-option-name, body.equip-page .saved-name{
  font-size:var(--rs-ui-name-size) !important;
  font-weight:900 !important;
  line-height:1.25;
}
body.cp-page .listitem .sub,
body.cp-page .pt-series,
body.status-page .manage-style-mods,
body.status-page .manage-char-option-meta,
body.equip-page .saved-meta{
  font-size:var(--rs-ui-meta-size) !important;
  line-height:1.45;
}
body.cp-page .loadtable .cp,
body.cp-page .equip-cp,
body.equip-page .saved-score{
  font-size:var(--rs-ui-value-size) !important;
  font-weight:900 !important;
  font-variant-numeric:tabular-nums;
  line-height:1.2;
}

/* ---------- Listing tables ----------
   CP's stat editor and Status's detail stat matrix stay page-specific. */
body.cp-page .loadtable th, body.cp-page .loadtable td{
  padding:var(--rs-ui-table-py) var(--rs-ui-table-px) !important;
  line-height:1.25;
}
body.cp-page .loadtable th{
  font-size:11.5px !important;
  font-weight:900 !important;
  letter-spacing:.01em;
}
body.cp-page .loadtable td{
  font-size:13px !important;
  font-variant-numeric:tabular-nums;
}

/* Shared zebra cadence; colors remain appropriate to each page. */
body.cp-page .loadtable tbody tr:nth-child(odd){ background:rgba(255,255,255,.055); }
body.cp-page .loadtable tbody tr:nth-child(even){ background:rgba(255,255,255,.018); }
body.cp-page .loadtable tbody tr:hover{ background:rgba(96,165,250,.10) !important; }

/* Active/selected list states use the same 3px focus ring language. */
body.status-page .manage-char-option.selected, body.equip-page .saved-item.is-editing{
  box-shadow:0 0 0 3px rgba(37,99,235,.13), 0 7px 18px rgba(15,23,42,.06) !important;
}
body.status-page .manage-char-option.selected{
  border-color:rgba(37,99,235,.52) !important;
}
body.equip-page .saved-item.is-editing{
  border-color:rgba(37,99,235,.62) !important;
}

/* ---------- Party/result subcards ---------- */
body.cp-page .party-strip{
  gap:var(--rs-ui-row-gap) !important;
}
body.cp-page .party-tile{
  border-radius:var(--rs-ui-radius-card) !important;
}
body.cp-page .pt-head{
  padding:9px 10px !important;
  gap:9px !important;
}
body.cp-page .pt-headmeta{ gap:5px !important; }
body.cp-page .pt-body{
  padding:0 10px 9px !important;
  gap:6px !important;
}
body.cp-page .pt-kv,
body.cp-page .pt-mini,
body.cp-page .pt-eq{
  border-radius:var(--rs-ui-radius-small) !important;
}
body.cp-page .pt-actions{
  padding:7px 10px !important;
  gap:6px !important;
}
body.equip-page .breakdown-row{
  min-height:30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:5px 9px !important;
  border-radius:var(--rs-ui-radius-small) !important;
  font-size:12px;
}

/* ---------- Pagination cadence ---------- */
body.cp-page .pager,
body.status-page .pagination,
body.equip-page .saved-pagination{
  gap:6px !important;
}
body.cp-page .pgbtn,
body.status-page .pagination .btn-small,
body.equip-page .page-button{
  min-height:var(--rs-ui-pager-h) !important;
  height:var(--rs-ui-pager-h);
  border-radius:var(--rs-ui-radius-small) !important;
  font-size:12.5px !important;
  line-height:1 !important;
}
body.cp-page .pgbtn{
  min-width:var(--rs-ui-pager-h) !important;
  padding:0 10px !important;
}
body.status-page .pagination .btn-small{
  padding:0 10px !important;
}
body.status-page #pageInfo{
  min-width:58px;
  line-height:var(--rs-ui-pager-h) !important;
  font-size:13px !important;
  font-weight:850;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
body.equip-page .page-button{
  min-width:var(--rs-ui-pager-h) !important;
  padding:0 10px !important;
}

/* Keyboard focus should be equally visible in all repeating rows. */
body.cp-page .listitem:focus-visible,
body.status-page .manage-char-option:focus-visible,
body.equip-page .saved-item:focus-within{
  outline:2px solid rgba(96,165,250,.72);
  outline-offset:2px;
}

@media (max-width:520px){
  :root{
    --rs-ui-row-pad-y:7px;
    --rs-ui-row-pad-x:9px;
    --rs-ui-table-py:7px;
    --rs-ui-table-px:6px;
    --rs-ui-pager-h:34px;
  }
  body.status-page .list-icon{
    width:38px !important;
    height:38px !important;
  }
  body.cp-page .loadtable .avatar{
    width:38px !important;
    height:38px !important;
  }
  body.status-page .manage-char-option{ min-height:56px; }
  body.cp-page .pt-head{ padding:8px 9px !important; }
  body.cp-page .pt-body{ padding:0 9px 8px !important; }
  body.cp-page .pt-actions{ padding:6px 9px !important; }
}

/* =========================================================
   v52.12 — CP single-calculation entry: character list -> detail
   The simulator now opens on a compact character selector because
   character master data is maintained in Status Management.
========================================================= */
body.cp-page .single-list-head-card,
body.cp-page .single-list-card{
  overflow:hidden;
}
body.cp-page .single-list-title-row{
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
}
body.cp-page .single-list-title-row > div:first-child{
  min-width:0;
  flex:1 1 auto;
}
body.cp-page .single-list-intro{
  margin-top:7px;
  line-height:1.55;
}
body.cp-page .single-list-count{
  flex:0 0 auto;
  min-width:56px;
  height:36px;
  padding:0 11px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  border:1px solid rgba(147,197,253,.34);
  background:rgba(37,99,235,.14);
  color:#bfdbfe;
  font-size:13px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
body.cp-page .single-list-controls{
  margin-top:12px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr);
  gap:10px;
  align-items:end;
}
body.cp-page .single-list-search-wrap,
body.cp-page .single-list-sort-wrap{
  min-width:0;
  display:grid;
  gap:5px;
}
body.cp-page .single-list-search-wrap > span,
body.cp-page .single-list-sort-wrap > span{
  color:rgba(226,232,240,.78);
  font-size:12px;
  font-weight:850;
}
body.cp-page #singleCharSearch,
body.cp-page #singleCharSort{
  width:100%;
  min-width:0;
}
body.cp-page .single-list-card{
  padding:6px !important;
}
body.cp-page .single-char-row{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0;
  min-height:76px;
  margin:0;
  padding:9px 10px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.085);
  border-radius:0;
  background:transparent;
  color:inherit;
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  text-align:left;
  cursor:pointer;
}
body.cp-page .single-char-row:first-child{
  border-radius:12px 12px 0 0;
}
body.cp-page .single-char-row:last-of-type{
  border-bottom:0;
  border-radius:0 0 12px 12px;
}
body.cp-page .single-char-row:nth-child(even){
  background:rgba(255,255,255,.022);
}
body.cp-page .single-char-row:hover,
body.cp-page .single-char-row:focus-visible{
  background:rgba(37,99,235,.105);
}
body.cp-page .single-char-row:focus-visible{
  outline:2px solid rgba(96,165,250,.72);
  outline-offset:-2px;
}
body.cp-page .single-char-row:active{
  background:rgba(37,99,235,.16);
}
body.cp-page .single-list-avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  overflow:hidden;
  position:relative;
  display:grid;
  place-items:center;
  border:2px solid rgba(147,197,253,.34);
  background:linear-gradient(145deg,rgba(71,85,105,.78),rgba(30,41,59,.92));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
body.cp-page .single-list-avatar img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
body.cp-page .single-list-avatar-fallback{
  color:rgba(226,232,240,.70);
  font-weight:900;
  font-size:18px;
}
body.cp-page .single-char-main{
  min-width:0;
  display:grid;
  gap:3px;
}
body.cp-page .single-char-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#f8fafc;
  font-size:15px;
  line-height:1.25;
  font-weight:900;
}
body.cp-page .single-char-sub{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(203,213,225,.72);
  font-size:11.5px;
  line-height:1.2;
}
body.cp-page .single-char-tags{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:1px;
}
body.cp-page .single-char-tags > span{
  min-height:22px;
  padding:0 8px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.065);
  color:rgba(226,232,240,.86);
  font-size:10.5px;
  font-weight:800;
  line-height:1;
}
body.cp-page .single-char-power{
  min-width:86px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  column-gap:5px;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
body.cp-page .single-char-power small{
  grid-column:1 / -1;
  color:rgba(191,219,254,.72);
  font-size:10px;
  font-weight:800;
  line-height:1.05;
}
body.cp-page .single-char-power strong{
  color:#93c5fd;
  font-size:16px;
  line-height:1.2;
  font-weight:950;
}
body.cp-page .single-char-arrow{
  color:rgba(147,197,253,.78);
  font-size:25px;
  line-height:1;
  transform:translateY(-1px);
}
body.cp-page .single-list-pager{
  margin-top:6px;
  padding:8px 4px 3px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-top:1px solid rgba(255,255,255,.08);
}
body.cp-page .single-list-pager > span{
  min-width:62px;
  text-align:center;
  color:rgba(226,232,240,.78);
  font-size:12px;
  font-weight:850;
  font-variant-numeric:tabular-nums;
}
body.cp-page .single-list-empty{
  min-height:110px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px !important;
  text-align:center;
  line-height:1.65;
}

@media(max-width:520px){
  body.cp-page .single-list-controls{
    grid-template-columns:1fr;
    gap:8px;
  }
  body.cp-page .single-char-row{
    min-height:72px;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:8px;
    padding:8px;
  }
  body.cp-page .single-list-avatar{
    width:44px;
    height:44px;
  }
  body.cp-page .single-char-power{
    min-width:79px;
  }
  body.cp-page .single-char-power strong{
    font-size:15px;
  }
  body.cp-page .single-char-arrow{
    font-size:22px;
  }
}

@media(max-width:370px){
  body.cp-page .single-char-row{
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:7px;
    padding:7px;
  }
  body.cp-page .single-list-avatar{
    width:40px;
    height:40px;
  }
  body.cp-page .single-char-name{ font-size:14px; }
  body.cp-page .single-char-sub{ font-size:10.5px; }
  body.cp-page .single-char-power{ min-width:72px; }
  body.cp-page .single-char-power strong{ font-size:14px; }
}

/* =========================================================
   v52.13 — CP reference list is the canonical character browser.
   The toolbar no longer changes geometry between list/detail.
   Character edits are committed or cancelled at the bottom.
========================================================= */
body.cp-page .single-detail-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:12px 0 4px;
  padding:12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(15,23,42,.72),rgba(15,23,42,.88));
  box-shadow:0 10px 26px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);
}
body.cp-page .single-detail-action{
  appearance:none;
  min-height:48px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.16);
  font:inherit;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  transition:transform .12s ease,filter .12s ease;
}
body.cp-page .single-detail-action:active{
  transform:translateY(1px) scale(.995);
}
body.cp-page .single-detail-save{
  color:#fff;
  background:linear-gradient(180deg,#2f7df5,#1d4ed8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.20),0 7px 18px rgba(29,78,216,.22);
}
body.cp-page .single-detail-back{
  color:#e5e7eb;
  background:linear-gradient(180deg,rgba(71,85,105,.82),rgba(30,41,59,.92));
}
@media(max-width:370px){
  body.cp-page .single-detail-actions{ gap:7px; padding:9px; }
  body.cp-page .single-detail-action{ min-height:44px; font-size:14px; }
}

/* v53.01: status growth toolbar */
.status-toolbar.status-toolbar-two{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.status-toolbar.status-toolbar-three{grid-template-columns:repeat(3,minmax(0,1fr))!important;}

/* v53.09 — shared readable secondary/empty states */
body.status-page .rs-empty-state,
body.equip-page .empty-state{
  color:#475569 !important;
}
body.cp-page .rs-empty-state,
body.cp-page td.rs-empty-cell{
  color:rgba(248,250,252,.86) !important;
}
