.adminWrap{
  min-height: 100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 20px;
}
.adminCard{
  width: 100%;
  max-width: 420px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(148,163,184,.35);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 10px 30px rgba(15,23,42,.08);
}
.adminTitle{
  margin: 0;
  font-size: 20px;
  font-weight: 900;
}
.adminSub{
  margin: 6px 0 14px;
}
.adminField{
  display:block;
  margin-bottom: 12px;
}
.adminField span{
  display:block;
  font-size: 12px;
  margin-bottom: 6px;
  color: rgba(2,6,23,.6);
}
.adminTop{
  position: sticky;
  top:0;
  z-index: 10;
  display:flex;
  justify-content: space-between;
  align-items:center;
  padding: 12px 14px;
  background: rgba(246,247,251,.95);
  border-bottom: 1px solid rgba(148,163,184,.25);
}
.adminTopTitle{
  font-weight: 900;
}
.adminTopLeft{
  display:flex;
  align-items:center;
  gap: 10px;
}
.adminTopRight{
  display:flex;
  align-items:center;
  gap: 10px;
}
.adminPage{
  max-width: 1400px;  /* <= ���� �ٽ� */
  margin: 0 auto;
  padding: 14px;
}
.adminMenu{
  display:grid;
  gap: 10px;
}
.adminMenuItem{
  display:block;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.35);
  background: rgba(255,255,255,.92);
  text-decoration:none;
  color: inherit;
}
.adminPage .input,
.adminPage .textarea,
.adminPage select{
  min-width: 0;
}
/* settings.html - ��ư ���� ��ħ ���� */
#msg{
  flex: 1 1 100%;
  width: 100%;
}

/* ����Ͽ��� ��ư 2���� ����(����) */
@media (max-width: 520px){
  #btnSave, #btnReload, #btnRecalc{
    flex: 1 1 calc(50% - 10px);
    min-width: 140px;
  }
}
/* Stage7: 관리자 메뉴는 필요할 때만 열리는 사이드 메뉴로 사용 */
.adminMenuButton{
  width:44px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  font-weight:900;
  line-height:1;
}
.adminMenuLayer{
  position:fixed;
  inset:0;
  z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .16s ease;
}
.adminMenuLayer.open{
  pointer-events:auto;
  opacity:1;
}
.adminMenuDim{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.38);
}
.adminMenuDrawer{
  position:absolute;
  top:0;
  left:0;
  width:min(390px, 92vw);
  height:100%;
  background:#f8fafc;
  border-right:1px solid rgba(148,163,184,.35);
  box-shadow:18px 0 45px rgba(15,23,42,.16);
  transform:translateX(-102%);
  transition:transform .18s ease;
  display:flex;
  flex-direction:column;
}
.adminMenuLayer.open .adminMenuDrawer{
  transform:translateX(0);
}
.adminMenuDrawerHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  border-bottom:1px solid rgba(148,163,184,.24);
  background:rgba(255,255,255,.9);
}
.adminMenuDrawerTitle{
  font-size:18px;
  font-weight:900;
}
.adminMenuDrawerSub{
  margin-top:4px;
  color:rgba(15,23,42,.58);
  font-size:13px;
}
.adminMenuClose{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
}
.adminMenuDrawerList{
  display:grid;
  gap:8px;
  padding:12px;
  overflow:auto;
}
.adminMenuDrawerItem{
  display:block;
  padding:12px 13px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.88);
  text-decoration:none;
  color:inherit;
}
.adminMenuDrawerItem b{
  display:block;
  font-size:14px;
}
.adminMenuDrawerItem span{
  display:block;
  margin-top:4px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  line-height:1.35;
}
.adminMenuDrawerItem.active{
  border-color:rgba(124,58,237,.45);
  background:rgba(237,233,254,.72);
}
.adminMenuOpen{
  overflow:hidden;
}
.adminDashboardGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.adminQuickGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:10px;
}
@media (max-width: 900px){
  .adminDashboardGrid,
  .adminQuickGrid{grid-template-columns:1fr;}
}


/* Stage9: 관리자 랭킹 업무 흐름/한글 사용성 최종 정리 */
.adminMenuGroup{display:grid;gap:7px;margin-bottom:8px;}
.adminMenuGroupTitle{padding:8px 4px 2px;color:rgba(15,23,42,.55);font-size:12px;font-weight:900;letter-spacing:-.02em;}
.adminFlowGuide{margin-bottom:14px;padding:14px;border:1px solid rgba(124,58,237,.22);border-radius:18px;background:linear-gradient(135deg,rgba(237,233,254,.72),rgba(255,255,255,.94));box-shadow:0 8px 24px rgba(15,23,42,.05);}
.adminFlowGuideHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.adminFlowGuideTitle{font-size:18px;font-weight:900;color:#0f172a;}
.adminFlowGuideDesc{margin-top:5px;color:rgba(15,23,42,.66);font-size:13px;line-height:1.55;}
.adminFlowHome{height:38px;display:inline-flex;align-items:center;}
.adminFlowSteps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px;}
.adminFlowStep{display:flex;align-items:center;gap:8px;padding:10px;border-radius:14px;border:1px solid rgba(148,163,184,.25);background:rgba(255,255,255,.82);text-decoration:none;color:inherit;min-width:0;}
.adminFlowStep span{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;color:#334155;font-size:12px;font-weight:900;flex:0 0 auto;}
.adminFlowStep b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.adminFlowStep.current{border-color:rgba(124,58,237,.55);background:rgba(237,233,254,.86);box-shadow:0 6px 18px rgba(124,58,237,.08);}
.adminFlowStep.current span{background:#7c3aed;color:#fff;}
.adminWorkflowPanel{margin-top:12px;padding:14px;border-radius:18px;border:1px solid rgba(148,163,184,.28);background:rgba(255,255,255,.92);}
.adminWorkflowTitle{font-size:16px;font-weight:900;margin-bottom:10px;}
.adminWorkflowGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.adminWorkflowCard{display:block;padding:11px;border-radius:14px;border:1px solid rgba(148,163,184,.24);background:#f8fafc;text-decoration:none;color:inherit;}
.adminWorkflowCard b{display:block;font-size:13px;}
.adminWorkflowCard span{display:block;margin-top:5px;color:rgba(15,23,42,.58);font-size:12px;line-height:1.4;}
.adminWorkflowNote{margin-top:10px;color:rgba(15,23,42,.62);font-size:13px;line-height:1.55;}
.adminMenuItem{transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.adminMenuItem:hover{transform:translateY(-1px);border-color:rgba(124,58,237,.32);box-shadow:0 8px 18px rgba(15,23,42,.06);}
@media (max-width: 1100px){
  .adminFlowSteps,.adminWorkflowGrid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 620px){
  .adminFlowSteps,.adminWorkflowGrid{grid-template-columns:1fr;}
  .adminFlowStep b{white-space:normal;}
}

/* Admin points manual grant usability update 20260509 */
.adminPointsPage{
  max-width: 1440px;
}
.adminPointsPage .btnGhost,
.adminPointsPage .btnPrimary{
  flex: 0 0 auto;
  font-weight: 800;
}
.adminPointsGuide{
  margin-bottom: 14px;
  padding: 16px;
  border-radius: 20px;
  border: 1px solid rgba(124,58,237,.22);
  background: linear-gradient(135deg, rgba(237,233,254,.78), rgba(255,255,255,.96));
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.adminPointsGuideTitle{
  font-size: 18px;
  font-weight: 900;
  color: #0f172a;
}
.adminPointsGuideText{
  margin-top: 5px;
  color: rgba(15,23,42,.68);
  font-size: 14px;
  line-height: 1.55;
}
.adminPointsSteps{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.adminPointsSteps span{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(124,58,237,.24);
  background: rgba(255,255,255,.88);
  color: #4c1d95;
  font-size: 13px;
  font-weight: 900;
}
.adminPointsCard{
  padding: 16px;
  margin-top: 14px;
}
.adminPointsCard:first-of-type{
  margin-top: 0;
}
.adminPointsCardHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.adminPointsSearchGrid{
  display: grid;
  grid-template-columns: minmax(260px,1fr) 160px 160px 120px;
  gap: 10px;
  align-items: end;
}
.adminPointsSearchGrid .adminField,
.adminPointsGrantBox .adminField{
  margin: 0;
}
.adminPointsSearchGrid select,
.adminPointsSearchGrid input,
.adminPointsGrantBox select,
.adminPointsGrantBox input{
  height: 44px;
}
.adminPointsSearchBtn,
.adminPointsSmallBtn,
.adminPointsRowBtn{
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  white-space: nowrap;
}
.adminPointsMessage{
  margin-top: 10px;
  min-height: 20px;
  color: rgba(15,23,42,.66);
  font-size: 13px;
  line-height: 1.5;
}
.adminPointsExternalState{
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(241,245,249,.9);
  color: rgba(15,23,42,.72);
  font-size: 13px;
  font-weight: 900;
}
.adminPointsUserSummary{
  display: grid;
  grid-template-columns: .75fr 1.35fr 1fr 1fr;
  gap: 10px;
}
.adminPointsInfoBox{
  padding: 13px;
  border-radius: 16px;
  border: 1px solid rgba(148,163,184,.24);
  background: rgba(248,250,252,.8);
  min-width: 0;
}
.adminPointsInfoBox span{
  display: block;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 6px;
}
.adminPointsInfoBox b{
  display: block;
  color: #0f172a;
  font-size: 17px;
  word-break: break-all;
}
.adminPointsGrantBox{
  margin-top: 14px;
  display: grid;
  gap: 12px;
}
.adminPointsGrantMain{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 10px;
  align-items: end;
}
.adminPointsAmount{
  font-size: 18px;
  font-weight: 900;
}
.adminPointsQuickAmounts{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: end;
  min-height: 44px;
}
.adminPointsQuickAmounts button{
  min-width: 76px;
  height: 40px;
  padding: 0 12px;
}
.adminPointsExternalBox{
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.25);
  background: rgba(248,250,252,.72);
}
.adminPointsCheckRow{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
}
.adminPointsCheckRow input{
  margin-top: 3px;
  width: 18px;
  height: 18px;
}
.adminPointsCheckRow b{
  display: block;
  font-size: 14px;
  color: #0f172a;
}
.adminPointsCheckRow em{
  display: block;
  margin-top: 4px;
  font-style: normal;
  color: rgba(15,23,42,.6);
  font-size: 13px;
  line-height: 1.45;
}
.adminPointsExternalInputs{
  display: grid;
  grid-template-columns: minmax(260px,1fr) 220px;
  gap: 10px;
  margin-top: 12px;
}
.adminPointsGrantActions{
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 12px;
  align-items: center;
}
.adminPointsGrantBtn{
  height: 48px;
  padding: 0 18px;
  font-size: 15px;
}
.adminPointsTableWrap{
  overflow: auto;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 16px;
}
.adminPointsTable{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  min-width: 960px;
  background: rgba(255,255,255,.72);
}
.adminPointsHistoryTable{
  min-width: 1180px;
}
.adminPointsTable th,
.adminPointsTable td{
  padding: 11px 12px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  text-align: left;
  vertical-align: middle;
}
.adminPointsTable th{
  color: rgba(15,23,42,.68);
  font-size: 12px;
  font-weight: 900;
  background: rgba(248,250,252,.92);
  white-space: nowrap;
}
.adminPointsTable tr:last-child td{
  border-bottom: 0;
}
.adminPointsTable tr.isSelected td{
  background: rgba(237,233,254,.45);
}
.adminPointsBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  background: rgba(226,232,240,.75);
  color: #334155;
}
.adminPointsBadge.success{
  background: rgba(220,252,231,.9);
  color: #166534;
}
.adminPointsBadge.wait{
  background: rgba(254,249,195,.9);
  color: #854d0e;
}
.adminPointsBadge.danger{
  background: rgba(254,226,226,.95);
  color: #991b1b;
}
.adminPointsBadge.neutral{
  background: rgba(226,232,240,.78);
  color: #475569;
}
.adminPointsDetails{
  margin-top: 7px;
  color: rgba(15,23,42,.58);
  font-size: 12px;
  line-height: 1.55;
}
.adminPointsDetails summary{
  cursor: pointer;
  font-weight: 800;
}
.adminPointsEmpty{
  padding: 24px 12px !important;
  text-align: center !important;
  color: rgba(15,23,42,.58);
}
.adminPointsHistoryActions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
@media (max-width: 1100px){
  .adminPointsSearchGrid,
  .adminPointsUserSummary,
  .adminPointsGrantMain,
  .adminPointsExternalInputs,
  .adminPointsGrantActions{
    grid-template-columns: 1fr 1fr;
  }
  .adminPointsSearchMain,
  .adminPointsGrantActions .adminPointsMessage{
    grid-column: 1 / -1;
  }
}
@media (max-width: 700px){
  .adminPointsSearchGrid,
  .adminPointsUserSummary,
  .adminPointsGrantMain,
  .adminPointsExternalInputs,
  .adminPointsGrantActions{
    grid-template-columns: 1fr;
  }
  .adminPointsGuide{
    align-items: flex-start;
  }
  .adminPointsSteps{
    width: 100%;
  }
  .adminPointsSteps span{
    flex: 1 1 calc(50% - 8px);
    justify-content: center;
  }
}

/* DANGGRAM_ADMIN_USERS_SAFE_20260509_START */
.adminUsersPage{
  max-width: 1480px;
}
.adminUsersGuide{
  margin-bottom: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(167,139,250,.24);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(237,233,254,.92), rgba(255,255,255,.88));
  box-shadow: 0 16px 40px rgba(15,23,42,.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.adminUsersGuideTitle{
  color: #0f172a;
  font-size: 17px;
  font-weight: 900;
  margin-bottom: 5px;
}
.adminUsersGuideText{
  color: rgba(15,23,42,.66);
  font-size: 13px;
  line-height: 1.55;
}
.adminUsersGuideBadges{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.adminUsersGuideBadges span{
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(167,139,250,.24);
  color: #5b21b6;
  font-size: 12px;
  font-weight: 900;
}
.adminUsersCard{
  padding: 16px;
  margin-top: 14px;
  border-radius: 22px;
}
.adminUsersCardHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}
.adminUsersSmallBtn{
  height: 40px;
  padding: 0 14px;
  white-space: nowrap;
}
.adminUsersFilterTabs{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.adminUsersFilterTabs button{
  height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,.28);
  background: rgba(255,255,255,.9);
  color: rgba(15,23,42,.72);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.adminUsersFilterTabs button.active{
  border-color: rgba(139,92,246,.55);
  background: rgba(237,233,254,.96);
  color: #5b21b6;
}
.adminUsersSearchGrid{
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(130px, .7fr));
  gap: 10px;
  align-items: end;
}
.adminUsersSearchMain{
  grid-column: span 2;
}
.adminUsersSearchBtn{
  height: 44px;
}
.adminUsersMessage{
  margin-top: 10px;
  color: rgba(15,23,42,.64);
  font-size: 13px;
  font-weight: 800;
}
.adminUsersTableWrap{
  overflow: auto;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 16px;
}
.adminUsersTable{
  width: 100%;
  min-width: 1380px;
  border-collapse: collapse;
  font-size: 13px;
  background: rgba(255,255,255,.74);
}
.adminUsersTable th,
.adminUsersTable td{
  padding: 12px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  text-align: left;
  vertical-align: top;
}
.adminUsersTable th{
  color: rgba(15,23,42,.68);
  background: rgba(248,250,252,.94);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.adminUsersTable tr:last-child td{
  border-bottom: 0;
}
.adminUsersTable tr.isGuest td{
  background: rgba(248,250,252,.72);
}
.adminUsersMainText{
  max-width: 360px;
  color: #0f172a;
  font-weight: 900;
  word-break: break-all;
}
.adminUsersBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  background: rgba(226,232,240,.75);
  color: #334155;
}
.adminUsersBadge.success{
  background: rgba(220,252,231,.92);
  color: #166534;
}
.adminUsersBadge.danger{
  background: rgba(254,226,226,.95);
  color: #991b1b;
}
.adminUsersBadge.neutral{
  background: rgba(226,232,240,.78);
  color: #475569;
}
.adminUsersActions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.adminUsersRowBtn{
  min-height: 34px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  white-space: nowrap;
}
.adminUsersRowBtn.danger{
  border-color: #fecaca;
  color: #dc2626;
}
.adminUsersNoPoint{
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(226,232,240,.65);
  color: rgba(15,23,42,.55);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.adminUsersDetails{
  margin-top: 8px;
  color: rgba(15,23,42,.62);
  font-size: 12px;
}
.adminUsersDetails summary{
  cursor: pointer;
  font-weight: 900;
}
.adminUsersDetailGrid{
  margin-top: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  min-width: 520px;
}
.adminUsersDetailGrid div{
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(248,250,252,.88);
  border: 1px solid rgba(148,163,184,.18);
}
.adminUsersDetailGrid b{
  display: block;
  color: rgba(15,23,42,.72);
  font-size: 11px;
  margin-bottom: 4px;
}
.adminUsersDetailGrid span{
  display: block;
  color: rgba(15,23,42,.74);
  line-height: 1.45;
  word-break: break-word;
}
.adminUsersEmpty{
  padding: 28px 12px !important;
  text-align: center !important;
  color: rgba(15,23,42,.58);
}
@media (max-width: 1180px){
  .adminUsersSearchGrid{
    grid-template-columns: 1fr 1fr 1fr;
  }
  .adminUsersSearchMain{
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px){
  .adminUsersGuide,
  .adminUsersCardHead{
    align-items: flex-start;
    flex-direction: column;
  }
  .adminUsersGuideBadges{
    justify-content: flex-start;
  }
  .adminUsersSearchGrid{
    grid-template-columns: 1fr;
  }
  .adminUsersSearchMain{
    grid-column: auto;
  }
}
/* DANGGRAM_ADMIN_USERS_SAFE_20260509_END */

/* AUTH_SECURITY_STEP2_START: 로그인 보안 내역 화면 */
.authSecurityPage{max-width:1480px;}
.authSecurityGuide{padding:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;}
.authSecurityGuideText{margin:8px 0 0;line-height:1.55;}
.authSecurityGuideSteps{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.authSecurityGuideSteps span{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;background:rgba(237,233,254,.9);border:1px solid rgba(124,58,237,.2);font-size:13px;font-weight:900;color:#4c1d95;}
.authSecuritySummaryGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.authSecuritySummaryCard{padding:14px;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;}
.authSecuritySummaryCard span{color:rgba(15,23,42,.58);font-size:13px;font-weight:800;}
.authSecuritySummaryCard b{font-size:30px;line-height:1;color:#0f172a;}
.authSecuritySummaryCard.good b{color:#15803d;}
.authSecuritySummaryCard.warn b{color:#b45309;}
.authSecuritySummaryCard.danger b{color:#b91c1c;}
.authSecurityFilterCard,.authSecurityListCard,.authSecurityMiniCard{padding:14px;margin-bottom:14px;}
.authSecurityFilters{display:grid;grid-template-columns:150px 170px 140px 170px minmax(260px,1fr) 180px 120px 130px 120px;gap:10px;align-items:end;margin-top:12px;}
.authSecurityFilters .adminField{margin:0;}
.authSecuritySearchBtn{height:44px;}
.authSecurityMessage{margin-top:10px;color:rgba(15,23,42,.64);font-size:13px;font-weight:800;}
.authSecurityTwoCol{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.authSecurityListBox{display:grid;gap:8px;margin-top:12px;}
.authSecurityMiniRow{width:100%;text-align:left;border:1px solid rgba(148,163,184,.28);border-radius:14px;background:#fff;padding:11px 12px;display:grid;gap:4px;color:inherit;}
.authSecurityMiniRow:not(.static){cursor:pointer;}
.authSecurityMiniRow:not(.static):hover{border-color:rgba(124,58,237,.45);background:rgba(237,233,254,.35);}
.authSecurityMiniRow b{font-size:14px;}
.authSecurityMiniRow span,.authSecurityMiniRow small{font-size:12px;color:rgba(15,23,42,.58);line-height:1.35;}
.authSecurityEmpty{padding:16px;border:1px dashed rgba(148,163,184,.45);border-radius:14px;color:rgba(15,23,42,.55);font-weight:800;text-align:center;background:rgba(248,250,252,.8);}
.authSecurityPager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.authSecurityPager button[disabled]{opacity:.45;cursor:not-allowed;}
.authSecurityTableWrap{overflow:auto;margin-top:12px;border:1px solid rgba(148,163,184,.2);border-radius:16px;}
.authSecurityTable{width:100%;border-collapse:collapse;min-width:1100px;background:#fff;}
.authSecurityTable th,.authSecurityTable td{padding:12px 10px;border-bottom:1px solid rgba(148,163,184,.18);vertical-align:top;text-align:left;font-size:13px;}
.authSecurityTable th{position:sticky;top:0;background:#f8fafc;color:#0f172a;font-size:12px;font-weight:900;z-index:1;}
.authSecurityUserCell span{display:block;margin-top:3px;color:rgba(15,23,42,.58);font-size:12px;word-break:break-all;}
.authSecurityBadge{display:inline-flex;align-items:center;justify-content:center;min-width:54px;min-height:28px;padding:5px 9px;border-radius:999px;font-weight:900;font-size:12px;}
.authSecurityBadge.ok{background:#dcfce7;color:#166534;}
.authSecurityBadge.warn{background:#fef3c7;color:#92400e;}
.authSecurityBadge.danger{background:#fee2e2;color:#991b1b;}
.authSecurityBadge.info{background:#e0f2fe;color:#075985;}
.authSecurityDetails summary{cursor:pointer;font-weight:900;color:#4c1d95;white-space:nowrap;}
.authSecurityDetails div{margin-top:8px;}
.authSecurityDetails pre{max-width:360px;max-height:180px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid rgba(148,163,184,.24);border-radius:10px;padding:8px;font-size:12px;color:#334155;}
.authSecurityEmptyCell{text-align:center!important;padding:28px!important;color:rgba(15,23,42,.55);font-weight:900;}
@media (max-width:1200px){.authSecuritySummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));}.authSecurityFilters{grid-template-columns:repeat(3,minmax(0,1fr));}.authSecurityTwoCol{grid-template-columns:1fr;}}
@media (max-width:760px){.authSecurityGuide{display:grid;}.authSecurityGuideSteps{justify-content:flex-start;}.authSecuritySummaryGrid,.authSecurityFilters{grid-template-columns:1fr;}.authSecuritySummaryCard{min-height:86px;}.authSecuritySummaryCard b{font-size:26px;}}
/* AUTH_SECURITY_STEP2_END */

/* ADMIN_AUDIT_STEP3_START: 관리자 작업 기록 화면 */
.adminAuditPage{max-width:1480px;}
.adminAuditGuide{padding:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;}
.adminAuditGuideText{margin:8px 0 0;line-height:1.55;}
.adminAuditGuideBadges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.adminAuditGuideBadges span{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;background:rgba(237,233,254,.9);border:1px solid rgba(124,58,237,.2);font-size:13px;font-weight:900;color:#4c1d95;}
.adminAuditSummaryGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.adminAuditSummaryCard{padding:14px;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;}
.adminAuditSummaryCard span{color:rgba(15,23,42,.58);font-size:13px;font-weight:800;}
.adminAuditSummaryCard b{font-size:28px;line-height:1;color:#0f172a;word-break:break-all;}
.adminAuditSummaryCard.good b{color:#15803d;}
.adminAuditSummaryCard.warn b{color:#b45309;}
.adminAuditSummaryCard.danger b{color:#b91c1c;}
.adminAuditLastText{font-size:18px!important;line-height:1.2!important;}
.adminAuditFilterCard,.adminAuditListCard{padding:14px;margin-bottom:14px;}
.adminAuditCardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.adminAuditQuickButtons,.adminAuditPager{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.adminAuditFilters{display:grid;grid-template-columns:150px 150px 170px minmax(260px,1.3fr) 170px 150px 130px 170px 140px 110px 110px;gap:10px;align-items:end;margin-top:14px;}
.adminAuditFilters .adminField{margin:0;}
.adminAuditSearchMain{grid-column:span 2;}
.adminAuditSearchBtn{height:44px;}
.adminAuditMessage{margin-top:10px;color:rgba(15,23,42,.64);font-size:13px;font-weight:800;}
.adminAuditTableWrap{overflow:auto;margin-top:12px;border:1px solid rgba(148,163,184,.2);border-radius:16px;}
.adminAuditTable{width:100%;border-collapse:collapse;min-width:1120px;background:#fff;}
.adminAuditTable th,.adminAuditTable td{padding:12px 10px;border-bottom:1px solid rgba(148,163,184,.18);vertical-align:top;text-align:left;font-size:13px;}
.adminAuditTable th{position:sticky;top:0;background:#f8fafc;color:#0f172a;font-size:12px;font-weight:900;z-index:1;white-space:nowrap;}
.adminAuditTable tr:last-child td{border-bottom:0;}
.adminAuditTimeCell{white-space:nowrap;font-weight:900;color:#334155;}
.adminAuditIpCell{white-space:nowrap;font-weight:800;color:#334155;}
.adminAuditSubText{display:block;margin-top:4px;color:rgba(15,23,42,.55);font-size:12px;line-height:1.35;word-break:break-all;}
.adminAuditBadge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;font-weight:900;font-size:12px;white-space:nowrap;}
.adminAuditBadge.good{background:#dcfce7;color:#166534;}
.adminAuditBadge.warn{background:#fef3c7;color:#92400e;}
.adminAuditBadge.danger{background:#fee2e2;color:#991b1b;}
.adminAuditBadge.info{background:#e0f2fe;color:#075985;}
.adminAuditBadge.neutral{background:#e2e8f0;color:#334155;}
.adminAuditDetails summary{cursor:pointer;font-weight:900;color:#4c1d95;white-space:nowrap;}
.adminAuditDetails pre{max-width:380px;max-height:190px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid rgba(148,163,184,.24);border-radius:10px;padding:8px;font-size:12px;color:#334155;}
.adminAuditEmptyCell{text-align:center!important;padding:30px!important;color:rgba(15,23,42,.55);font-weight:900;}
.adminAuditPager button[disabled]{opacity:.45;cursor:not-allowed;}
@media (max-width:1320px){.adminAuditSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));}.adminAuditFilters{grid-template-columns:repeat(4,minmax(0,1fr));}.adminAuditSearchMain{grid-column:span 2;}}
@media (max-width:780px){.adminAuditGuide,.adminAuditCardHead{display:grid;}.adminAuditGuideBadges,.adminAuditQuickButtons,.adminAuditPager{justify-content:flex-start;}.adminAuditSummaryGrid,.adminAuditFilters{grid-template-columns:1fr;}.adminAuditSearchMain{grid-column:auto;}.adminAuditSummaryCard{min-height:86px;}.adminAuditSummaryCard b{font-size:24px;}}
/* ADMIN_AUDIT_STEP3_END */

/* ADMIN_AUDIT_REPORTS_STEP4_START: 관리자 작업 기록 깨짐 보정 + 신고/제재 초보자 UI */
.adminAuditFilterCard,
.adminReportsFilterCard{
  overflow: hidden;
}
.adminAuditFilters{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  gap: 10px;
  align-items: end;
  width: 100%;
  max-width: 100%;
}
.adminAuditFilters .adminField,
.adminReportsFilters .adminField{
  min-width: 0;
}
.adminAuditSearchMain{
  grid-column: span 2;
  min-width: 0;
}
.adminAuditSearchBtn{
  width: 100%;
  min-width: 0;
}
.adminAuditCardHead,
.adminReportsCardHead{
  min-width: 0;
}
.adminAuditQuickButtons,
.adminAuditPager,
.adminReportsQuickButtons,
.adminReportsPager{
  min-width: 0;
}
.adminAuditQuickButtons .btnGhost,
.adminReportsQuickButtons .btnGhost{
  white-space: nowrap;
}

.adminReportsPage{
  max-width: 1480px;
}
.adminReportsGuide{
  padding: 16px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  border-radius: 22px;
}
.adminReportsGuideText{
  margin: 8px 0 0;
  line-height: 1.55;
}
.adminReportsGuideBadges{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.adminReportsGuideBadges span{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(237,233,254,.9);
  border: 1px solid rgba(124,58,237,.2);
  font-size: 13px;
  font-weight: 900;
  color: #4c1d95;
  white-space: nowrap;
}
.adminReportsSummaryGrid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.adminReportsSummaryCard{
  padding: 14px;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.adminReportsSummaryCard span{
  color: rgba(15,23,42,.58);
  font-size: 13px;
  font-weight: 800;
}
.adminReportsSummaryCard b{
  font-size: 30px;
  line-height: 1;
  color: #0f172a;
}
.adminReportsSummaryCard.good b{ color: #15803d; }
.adminReportsSummaryCard.warn b{ color: #b45309; }
.adminReportsSummaryCard.danger b{ color: #b91c1c; }
.adminReportsFilterCard,
.adminReportsListCard{
  padding: 14px;
  margin-bottom: 14px;
  border-radius: 22px;
}
.adminReportsCardHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.adminReportsQuickButtons,
.adminReportsPager{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.adminReportsFilters{
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(140px, .8fr)) 120px 120px;
  gap: 10px;
  align-items: end;
  margin-top: 14px;
  width: 100%;
  max-width: 100%;
}
.adminReportsFilters .adminField{
  margin: 0;
}
.adminReportsSearchMain{
  min-width: 0;
}
.adminReportsSearchBtn{
  height: 44px;
  width: 100%;
}
.adminReportsMessage{
  margin-top: 10px;
  color: rgba(15,23,42,.64);
  font-size: 13px;
  font-weight: 800;
}
.adminReportsTableWrap{
  overflow: auto;
  margin-top: 12px;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 16px;
}
.adminReportsTable{
  width: 100%;
  border-collapse: collapse;
  min-width: 1180px;
  background: #fff;
}
.adminReportsTable th,
.adminReportsTable td{
  padding: 12px 10px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  vertical-align: top;
  text-align: left;
  font-size: 13px;
}
.adminReportsTable th{
  position: sticky;
  top: 0;
  background: #f8fafc;
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
  z-index: 1;
  white-space: nowrap;
}
.adminReportsTimeCell{
  white-space: nowrap;
  font-weight: 900;
  color: #334155;
}
.adminReportsMainText{
  display: block;
  max-width: 260px;
  word-break: break-all;
}
.adminReportsSubText,
.adminReportsDetailText{
  display: block;
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  line-height: 1.4;
  word-break: break-word;
  white-space: pre-wrap;
}
.adminReportsBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.adminReportsBadge.good{ background: #dcfce7; color: #166534; }
.adminReportsBadge.danger{ background: #fee2e2; color: #991b1b; }
.adminReportsProcessCell{
  min-width: 360px;
}
.adminReportsProcessBox{
  display: grid;
  grid-template-columns: minmax(150px, 180px) minmax(180px, 1fr) 112px;
  gap: 8px;
  align-items: end;
}
.adminReportsProcessBox label span{
  display: block;
  margin-bottom: 5px;
  color: rgba(15,23,42,.62);
  font-size: 12px;
  font-weight: 900;
}
.adminReportsActionSelect,
.adminReportsMemoInput{
  height: 38px;
  width: 100%;
}
.adminReportsResolveBtn{
  height: 38px;
  padding: 0 12px;
  white-space: nowrap;
}
.adminReportsHelpText{
  margin-top: 7px;
  color: rgba(185,28,28,.7);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}
.adminReportsResolvedBox{
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(248,250,252,.9);
  border: 1px solid rgba(148,163,184,.18);
}
.adminReportsResolvedBox b{
  color: #166534;
}
.adminReportsResolvedBox span{
  color: rgba(15,23,42,.62);
  font-size: 12px;
  word-break: break-word;
}
.adminReportsEmptyCell{
  text-align: center !important;
  padding: 30px !important;
  color: rgba(15,23,42,.55);
  font-weight: 900;
}
.adminReportsPager button[disabled]{
  opacity: .45;
  cursor: not-allowed;
}
@media (max-width: 1320px){
  .adminAuditSummaryGrid,
  .adminReportsSummaryGrid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminReportsFilters{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminReportsSearchMain{
    grid-column: 1 / -1;
  }
}
@media (max-width: 780px){
  .adminAuditGuide,
  .adminAuditCardHead,
  .adminReportsGuide,
  .adminReportsCardHead{
    display: grid;
  }
  .adminAuditGuideBadges,
  .adminAuditQuickButtons,
  .adminAuditPager,
  .adminReportsGuideBadges,
  .adminReportsQuickButtons,
  .adminReportsPager{
    justify-content: flex-start;
  }
  .adminAuditSummaryGrid,
  .adminAuditFilters,
  .adminReportsSummaryGrid,
  .adminReportsFilters{
    grid-template-columns: 1fr !important;
  }
  .adminAuditSearchMain,
  .adminReportsSearchMain{
    grid-column: auto;
  }
  .adminReportsProcessCell{
    min-width: 320px;
  }
  .adminReportsProcessBox{
    grid-template-columns: 1fr;
  }
}
/* ADMIN_AUDIT_REPORTS_STEP4_END */

/* ADMIN_POSTS_STEP5_START */
.adminPostsPage{
  max-width: 1400px;
}
.adminPostsGuide{
  padding: 14px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-radius: 22px;
}
.adminPostsGuideTitle{
  font-size: 15px;
  font-weight: 900;
  color: #0f172a;
}
.adminPostsGuide p{
  margin: 8px 0 0;
  color: rgba(15,23,42,.62);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.55;
}
.adminPostsGuideBadges{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.adminPostsGuideBadges span{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(237,233,254,.9);
  border: 1px solid rgba(124,58,237,.2);
  font-size: 13px;
  font-weight: 900;
  color: #4c1d95;
  white-space: nowrap;
}
.adminPostsSummaryGrid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.adminPostsSummaryCard{
  padding: 14px;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.adminPostsSummaryCard span{
  color: rgba(15,23,42,.58);
  font-size: 13px;
  font-weight: 800;
}
.adminPostsSummaryCard b{
  font-size: 30px;
  line-height: 1;
  color: #0f172a;
}
.adminPostsSummaryCard.warn b{ color: #b45309; }
.adminPostsSummaryCard.danger b{ color: #b91c1c; }
.adminPostsFilterCard,
.adminPostsListCard,
.adminPostsDetailCard{
  padding: 14px;
  margin-bottom: 14px;
  border-radius: 22px;
}
.adminPostsCardHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.adminPostsQuickButtons,
.adminPostsPager{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.adminPostsFilters{
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(160px, .9fr) repeat(4, minmax(130px, .8fr));
  gap: 10px;
  align-items: end;
  margin-top: 14px;
  width: 100%;
  max-width: 100%;
}
.adminPostsFilters .adminField{
  margin: 0;
}
.adminPostsFilters .input,
.adminPostsFilters select{
  height: 44px;
}
.adminPostsSearchMain{
  min-width: 0;
}
.adminPostsSearchBtn{
  height: 44px;
  width: 100%;
}
.adminPostsMessage{
  margin-top: 10px;
  color: rgba(15,23,42,.64);
  font-size: 13px;
  font-weight: 800;
}
.adminPostsTableWrap{
  overflow: auto;
  margin-top: 12px;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 16px;
}
.adminPostsTable{
  width: 100%;
  border-collapse: collapse;
  min-width: 1180px;
  background: #fff;
}
.adminPostsTable th,
.adminPostsTable td{
  padding: 12px 10px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  vertical-align: top;
  text-align: left;
  font-size: 13px;
}
.adminPostsTable th{
  position: sticky;
  top: 0;
  background: #f8fafc;
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
  z-index: 1;
  white-space: nowrap;
}
.adminPostsTable tbody tr{
  cursor: pointer;
}
.adminPostsTable tbody tr:hover{
  background: rgba(248,250,252,.8);
}
.adminPostsPostCell{
  display: grid;
  grid-template-columns: 58px minmax(160px, 1fr);
  gap: 10px;
  align-items: start;
  min-width: 250px;
}
.adminPostsPostCell b{
  display: block;
  font-weight: 900;
  color: #0f172a;
}
.adminPostsPostCell span,
.adminPostsSubText{
  display: block;
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  line-height: 1.4;
  word-break: break-word;
}
.adminPostsThumbWrap{
  width: 54px;
  height: 54px;
  position: relative;
  border-radius: 12px;
}
.adminPostsThumb{
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(148,163,184,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  color: rgba(15,23,42,.58);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}
.adminPostsThumbEmpty{
  padding: 0 4px;
}
.adminPostsPlay{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(0,0,0,.58);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  padding-left: 2px;
}
.adminPostsTimeCell{
  white-space: nowrap;
  font-weight: 900;
  color: #334155;
}
.adminPostsCounts{
  display: grid;
  gap: 4px;
  min-width: 90px;
}
.adminPostsCounts span{
  font-size: 12px;
  color: rgba(15,23,42,.7);
  font-weight: 800;
}
.adminPostsBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin: 0 5px 5px 0;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.adminPostsBadge.good{ background: #dcfce7; color: #166534; }
.adminPostsBadge.warn{ background: #fef3c7; color: #92400e; }
.adminPostsBadge.danger{ background: #fee2e2; color: #991b1b; }
.adminPostsBadge.info{ background: #dbeafe; color: #1e40af; }
.adminPostsActionBox{
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 200px;
}
.adminPostsActionBox button{
  min-height: 34px;
  padding: 0 10px;
  white-space: nowrap;
}
.adminPostsActionBox .danger{
  border-color: #fecaca;
  color: #dc2626;
}
.adminPostsEmptyCell{
  text-align: center !important;
  padding: 30px !important;
  color: rgba(15,23,42,.55);
  font-weight: 900;
}
.adminPostsPager button[disabled]{
  opacity: .45;
  cursor: not-allowed;
}
.adminPostsDetailEmpty,
.adminPostsDetailNoMedia{
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  border: 1px dashed rgba(148,163,184,.35);
  background: rgba(248,250,252,.7);
  color: rgba(15,23,42,.56);
  font-weight: 900;
}
.adminPostsDetailGrid{
  display: grid;
  grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  margin-top: 12px;
}
.adminPostsDetailMedia{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.adminPostsDetailImage{
  width: 190px;
  height: 190px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(148,163,184,.28);
  background: #f8fafc;
}
.adminPostsDetailVideo{
  width: 360px;
  max-width: 100%;
  height: 210px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(148,163,184,.28);
  background: #000;
}
.adminPostsDetailInfo{
  display: grid;
  gap: 12px;
  min-width: 0;
}
.adminPostsDetailTitle{
  font-size: 20px;
  font-weight: 900;
  color: #0f172a;
}
.adminPostsDetailBadges{
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.adminPostsInfoList{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.adminPostsInfoList div,
.adminPostsCaptionBox,
.adminPostsNoticeBox{
  padding: 12px;
  border-radius: 16px;
  background: rgba(248,250,252,.9);
  border: 1px solid rgba(148,163,184,.18);
}
.adminPostsInfoList span,
.adminPostsCaptionBox span,
.adminPostsNoticeBox span{
  display: block;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 5px;
}
.adminPostsInfoList b,
.adminPostsNoticeBox b{
  display: block;
  color: #0f172a;
  font-weight: 900;
  word-break: break-word;
}
.adminPostsInfoList em{
  display: block;
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-style: normal;
  font-size: 12px;
  word-break: break-word;
}
.adminPostsCaptionBox p{
  margin: 0;
  color: #0f172a;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}
@media (max-width: 1320px){
  .adminPostsSummaryGrid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminPostsFilters{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminPostsSearchMain{
    grid-column: 1 / -1;
  }
}
@media (max-width: 780px){
  .adminPostsGuide,
  .adminPostsCardHead,
  .adminPostsDetailGrid{
    display: grid;
  }
  .adminPostsGuideBadges,
  .adminPostsQuickButtons,
  .adminPostsPager{
    justify-content: flex-start;
  }
  .adminPostsSummaryGrid,
  .adminPostsFilters,
  .adminPostsInfoList{
    grid-template-columns: 1fr !important;
  }
  .adminPostsSearchMain{
    grid-column: auto;
  }
  .adminPostsTable{
    min-width: 980px;
  }
  .adminPostsDetailImage{
    width: 140px;
    height: 140px;
  }
}
/* ADMIN_POSTS_STEP5_END */

/* ADMIN_COMMENTS_STEP6_START */
.adminCommentsPage{
  max-width: 1440px;
  overflow-x: hidden;
}
.adminCommentsGuide,
.adminCommentsFilterCard,
.adminCommentsListCard,
.adminCommentsToolCard{
  padding: 14px;
  margin-bottom: 14px;
  overflow: hidden;
}
.adminCommentsGuide,
.adminCommentsCardHead{
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.adminCommentsGuideText{
  margin: 8px 0 0;
  line-height: 1.55;
  word-break: keep-all;
}
.adminCommentsGuideBadges,
.adminCommentsQuickButtons,
.adminCommentsPager{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}
.adminCommentsGuideBadges span{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: #efe7ff;
  color: #5b21b6;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}
.adminCommentsSummaryGrid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.adminCommentsSummaryCard{
  padding: 14px;
  min-height: 86px;
}
.adminCommentsSummaryCard span{
  display: block;
  color: rgba(15,23,42,.62);
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 12px;
}
.adminCommentsSummaryCard b{
  display: block;
  color: #0f172a;
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
}
.adminCommentsSummaryCard.good b{ color: #15803d; }
.adminCommentsSummaryCard.danger b{ color: #dc2626; }
.adminCommentsSummaryCard.warn b{ color: #b45309; }
.adminCommentsFilters{
  display: grid;
  grid-template-columns: minmax(260px, 1.6fr) repeat(5, minmax(130px, 1fr));
  gap: 10px;
  align-items: end;
  margin-top: 14px;
}
.adminCommentsFilters .adminField{
  margin: 0;
  min-width: 0;
}
.adminCommentsFilters .input{
  width: 100%;
  height: 44px;
}
.adminCommentsSearchMain{
  grid-column: span 2;
}
.adminCommentsSearchBtn{
  height: 44px;
  min-width: 110px;
  white-space: nowrap;
}
.adminCommentsMessage{
  min-height: 22px;
  margin-top: 10px;
  color: rgba(15,23,42,.62);
  font-size: 13px;
  font-weight: 800;
}
.adminCommentsToolCard details{
  border-radius: 16px;
  border: 1px dashed rgba(148,163,184,.35);
  background: rgba(248,250,252,.75);
  padding: 12px;
}
.adminCommentsToolCard summary{
  cursor: pointer;
  color: #334155;
  font-weight: 900;
}
.adminCommentsToolBody{
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 12px;
}
.adminCommentsTableWrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.adminCommentsTable{
  width: 100%;
  min-width: 1160px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}
.adminCommentsTable th{
  padding: 11px 10px;
  text-align: left;
  border-bottom: 1px solid rgba(148,163,184,.26);
  color: #334155;
  font-weight: 900;
  white-space: nowrap;
  background: rgba(248,250,252,.7);
}
.adminCommentsTable td{
  padding: 12px 10px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  vertical-align: top;
  color: #0f172a;
}
.adminCommentsTimeCell{
  white-space: nowrap;
  font-weight: 900;
  color: #334155;
}
.adminCommentsMainText{
  display: block;
  color: #0f172a;
  font-weight: 900;
  word-break: break-word;
}
.adminCommentsSubText{
  display: block;
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 800;
  word-break: break-word;
}
.adminCommentsBadgeLine{
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}
.adminCommentsBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  margin: 0 5px 5px 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.adminCommentsBadge.good{ background: #dcfce7; color: #166534; }
.adminCommentsBadge.warn{ background: #fef3c7; color: #92400e; }
.adminCommentsBadge.danger{ background: #fee2e2; color: #991b1b; }
.adminCommentsBadge.info{ background: #dbeafe; color: #1e40af; }
.adminCommentsTextBox{
  max-width: 360px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(248,250,252,.9);
  border: 1px solid rgba(148,163,184,.18);
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.55;
  font-weight: 800;
}
.adminCommentsPostLink{
  display: grid;
  gap: 4px;
  min-width: 240px;
  max-width: 340px;
  color: inherit;
  text-decoration: none;
}
.adminCommentsPostLink b{
  color: #4f46e5;
  font-weight: 900;
}
.adminCommentsPostLink span{
  color: #0f172a;
  font-weight: 800;
  line-height: 1.45;
  word-break: break-word;
}
.adminCommentsPostLink em{
  color: rgba(15,23,42,.55);
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  word-break: break-word;
}
.adminCommentsActionBox{
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 170px;
}
.adminCommentsActionBox button{
  min-height: 34px;
  padding: 0 10px;
  white-space: nowrap;
}
.adminCommentsActionBox .danger{
  border-color: #fecaca;
  color: #dc2626;
}
.adminCommentsDetailRow td{
  padding: 0 10px 14px;
  background: rgba(248,250,252,.45);
}
.adminCommentsDetailBox{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
}
.adminCommentsDetailBox div{
  padding: 10px;
  border-radius: 14px;
  background: rgba(248,250,252,.85);
}
.adminCommentsDetailBox span{
  display: block;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 5px;
}
.adminCommentsDetailBox b{
  display: block;
  color: #0f172a;
  font-weight: 900;
  word-break: break-word;
}
.adminCommentsEmptyCell{
  text-align: center !important;
  padding: 30px !important;
  color: rgba(15,23,42,.55);
  font-weight: 900;
}
.adminCommentsPager button[disabled]{
  opacity: .45;
  cursor: not-allowed;
}
@media (max-width: 1320px){
  .adminCommentsSummaryGrid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminCommentsFilters{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminCommentsSearchMain{
    grid-column: 1 / -1;
  }
  .adminCommentsDetailBox{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 780px){
  .adminCommentsGuide,
  .adminCommentsCardHead{
    display: grid;
  }
  .adminCommentsGuideBadges,
  .adminCommentsQuickButtons,
  .adminCommentsPager{
    justify-content: flex-start;
  }
  .adminCommentsSummaryGrid,
  .adminCommentsFilters,
  .adminCommentsDetailBox{
    grid-template-columns: 1fr !important;
  }
  .adminCommentsSearchMain{
    grid-column: auto;
  }
  .adminCommentsTable{
    min-width: 1040px;
  }
}
/* ADMIN_COMMENTS_STEP6_END */

/* ADMIN_WALK_STEP7_START: 산책모드 관리자 화면 초보자용 정리 */
.adminWalkPage{
  max-width: 1440px;
}
.adminWalkGuide,
.adminWalkSearchCard,
.adminWalkSettingsCard,
.adminWalkPanel,
.adminWalkDetailCard{
  padding: 14px;
  margin-top: 14px;
  overflow: hidden;
}
.adminWalkGuide{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.adminWalkGuideText{
  margin-top: 8px;
  line-height: 1.65;
  word-break: keep-all;
}
.adminWalkGuideSteps,
.adminWalkQuickButtons,
.adminWalkPager{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.adminWalkGuideSteps span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: #f3e8ff;
  color: #5b21b6;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}
.adminWalkCardHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.adminWalkWeekInfo{
  min-width: 190px;
  text-align: right;
  color: rgba(15,23,42,.62);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.55;
}
.adminWalkQuickButtons{
  justify-content: flex-start;
  margin: 8px 0 12px;
}
.adminWalkQuickButtons .btnGhost,
.adminWalkPager .btnGhost,
.adminWalkCardHead .btnGhost{
  min-height: 40px;
}
.adminWalkFilters{
  display: grid;
  grid-template-columns: 150px 150px 150px minmax(260px, 1fr) 130px 130px;
  gap: 10px;
  align-items: end;
}
.adminWalkFilters .adminField{
  margin: 0;
}
.adminWalkFilters select,
.adminWalkFilters input{
  height: 44px;
}
.adminWalkSearchButton{
  min-height: 44px;
}
.adminWalkMessage{
  min-height: 20px;
  margin-top: 10px;
}
.adminWalkSummaryGrid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.adminWalkMetric{
  padding: 14px;
}
.adminWalkMetricLabel{
  color: rgba(15,23,42,.6);
  font-size: 12px;
  font-weight: 900;
}
.adminWalkMetricValue{
  margin-top: 7px;
  color: #0f172a;
  font-size: 24px;
  font-weight: 950;
  line-height: 1.1;
}
.adminWalkMetricSub{
  margin-top: 7px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
}
.adminWalkMetric.danger .adminWalkMetricValue{
  color: #dc2626;
}
.adminWalkSettingsBody{
  display: grid;
  gap: 12px;
}
.adminWalkSettingsGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.adminWalkTestBox{
  padding: 12px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 16px;
  background: rgba(248,250,252,.7);
}
.adminWalkSubTitle{
  color: #0f172a;
  font-size: 15px;
  font-weight: 950;
  margin-bottom: 8px;
}
.adminWalkMiniTitle{
  margin: 14px 0 8px;
  color: rgba(15,23,42,.72);
  font-size: 13px;
  font-weight: 950;
}
.adminWalkTestList{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.adminWalkTestUser{
  padding: 10px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 14px;
  background: #fff;
}
.adminWalkTestUser b,
.adminWalkTestUser span{
  display: block;
  word-break: break-word;
}
.adminWalkTestUser b{
  font-size: 13px;
  font-weight: 950;
}
.adminWalkTestUser span{
  margin-top: 4px;
  color: rgba(15,23,42,.58);
  font-size: 12px;
  font-weight: 800;
}
.adminWalkTableWrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.adminWalkTable{
  width: 100%;
  min-width: 1080px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}
.adminWalkSessionsTable{
  min-width: 1360px;
}
.adminWalkTable th{
  padding: 11px 10px;
  border-bottom: 1px solid rgba(148,163,184,.28);
  background: rgba(248,250,252,.88);
  color: rgba(15,23,42,.72);
  text-align: left;
  font-weight: 950;
  white-space: nowrap;
}
.adminWalkTable td{
  padding: 12px 10px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  color: #0f172a;
  font-weight: 800;
  vertical-align: top;
}
.adminWalkTable tbody tr:hover td{
  background: rgba(248,250,252,.6);
}
.adminWalkRankNo{
  display: inline-flex;
  min-width: 36px;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f3e8ff;
  color: #5b21b6;
  font-size: 17px;
}
.adminWalkUserCell{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}
.adminWalkUserCell.compact{
  min-width: 180px;
}
.adminWalkUserCell b,
.adminWalkUserCell span,
.adminWalkUserCell em{
  display: block;
  word-break: break-word;
}
.adminWalkUserCell b{
  font-weight: 950;
}
.adminWalkUserCell span{
  margin-top: 3px;
  color: #334155;
  font-size: 12px;
  font-weight: 800;
}
.adminWalkUserCell em{
  margin-top: 3px;
  color: rgba(15,23,42,.54);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}
.adminWalkThumb{
  display: inline-flex;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.32);
  background: #f8fafc;
  overflow: hidden;
}
.adminWalkThumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.adminWalkNoPhoto{
  display: inline-flex;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  border: 1px dashed rgba(148,163,184,.45);
  color: rgba(15,23,42,.48);
  font-size: 10px;
  font-weight: 900;
  text-align: center;
  background: #f8fafc;
}
.adminWalkBadge{
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  justify-content: center;
  padding: 3px 9px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}
.adminWalkBadge.good{ background:#dcfce7; color:#166534; }
.adminWalkBadge.info{ background:#dbeafe; color:#1d4ed8; }
.adminWalkBadge.warn{ background:#fef3c7; color:#92400e; }
.adminWalkBadge.danger{ background:#fee2e2; color:#991b1b; }
.adminWalkProgress{
  width: 120px;
  height: 8px;
  margin: 7px 0 5px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}
.adminWalkProgress i{
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6366f1, #f97316);
}
.adminWalkPhotoLine{
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 166px;
  margin-bottom: 5px;
}
.adminWalkPager span{
  min-width: 60px;
  color: rgba(15,23,42,.64);
  text-align: center;
  font-weight: 900;
}
.adminWalkPager button[disabled]{
  opacity: .45;
  cursor: not-allowed;
}
.adminWalkEmptyCell{
  padding: 28px !important;
  color: rgba(15,23,42,.55) !important;
  text-align: center !important;
  font-weight: 950 !important;
}
.adminWalkEmptyCell.danger{
  color: #dc2626 !important;
}
.adminWalkKv{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(148,163,184,.16);
}
.adminWalkKv span{
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 900;
}
.adminWalkKv b{
  color: #0f172a;
  text-align: right;
  font-weight: 950;
  word-break: break-word;
}
.adminWalkDetailGrid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.adminWalkDetailBox{
  padding: 12px;
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 16px;
  background: rgba(255,255,255,.8);
}
.adminWalkLogItem{
  padding: 9px 0;
  border-bottom: 1px solid rgba(148,163,184,.16);
}
.adminWalkLogItem b,
.adminWalkLogItem span{
  display: block;
  word-break: break-word;
}
.adminWalkLogItem b{
  font-weight: 950;
}
.adminWalkLogItem span{
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-weight: 800;
}
.adminWalkPhotoSection{
  margin-top: 14px;
}
.adminWalkPhotoGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.adminWalkPhotoCard{
  padding: 10px;
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 16px;
  background: #fff;
}
.adminWalkPhotoCard img{
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-radius: 13px;
  background: #f1f5f9;
}
.adminWalkPhotoCard b,
.adminWalkPhotoCard span,
.adminWalkPhotoCard em{
  display: block;
  word-break: break-word;
}
.adminWalkPhotoCard b{
  margin-top: 8px;
  font-weight: 950;
}
.adminWalkPhotoCard span,
.adminWalkPhotoCard em{
  margin-top: 4px;
  color: rgba(15,23,42,.56);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.45;
}
.adminWalkTechDetails{
  margin-top: 12px;
  padding: 10px;
  border: 1px dashed rgba(148,163,184,.36);
  border-radius: 14px;
  background: rgba(248,250,252,.8);
}
.adminWalkTechDetails summary{
  cursor: pointer;
  color: #5b21b6;
  font-weight: 950;
}
.adminWalkBreak{
  display: block;
  max-width: 360px;
  word-break: break-all;
  font-size: 12px;
}
.adminWalkAlert{
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
  color: #334155;
  font-weight: 900;
}
.adminWalkAlert.danger{
  background: #fee2e2;
  color: #991b1b;
}
@media (max-width: 1320px){
  .adminWalkSummaryGrid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminWalkFilters{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .adminWalkSearchMain{
    grid-column: 1 / -1;
  }
  .adminWalkSettingsGrid,
  .adminWalkTestList{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 820px){
  .adminWalkGuide,
  .adminWalkCardHead{
    display: grid;
  }
  .adminWalkGuideSteps,
  .adminWalkQuickButtons,
  .adminWalkPager{
    justify-content: flex-start;
  }
  .adminWalkWeekInfo{
    min-width: 0;
    text-align: left;
  }
  .adminWalkSummaryGrid,
  .adminWalkFilters,
  .adminWalkSettingsGrid,
  .adminWalkTestList,
  .adminWalkDetailGrid,
  .adminWalkPhotoGrid{
    grid-template-columns: 1fr !important;
  }
  .adminWalkSearchMain{
    grid-column: auto;
  }
  .adminWalkTable{
    min-width: 980px;
  }
  .adminWalkSessionsTable{
    min-width: 1220px;
  }
}
/* ADMIN_WALK_STEP7_END */

/* RANK_PRIZE_FLOW_STEP8_START */
.adminOpsFlowCard{
  margin-bottom:14px;
  padding:16px;
  border:1px solid rgba(124,58,237,.14);
  border-radius:20px;
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.9));
  box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.adminOpsFlowHead{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.adminOpsFlowTitle{
  color:#0f172a;
  font-size:17px;
  font-weight:950;
  letter-spacing:-.03em;
}
.adminOpsFlowDesc{
  margin-top:6px;
  color:rgba(15,23,42,.62);
  font-size:13px;
  font-weight:800;
  line-height:1.55;
}
.adminOpsFlowLinks{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.adminOpsFlowLinks a,
.adminOpsFlowLinks button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(148,163,184,.32);
  border-radius:999px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:950;
  text-decoration:none;
  cursor:pointer;
}
.adminOpsFlowLinks a:hover,
.adminOpsFlowLinks button:hover{
  border-color:#a78bfa;
  color:#5b21b6;
}
.adminOpsCheckGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.adminOpsCheckBox{
  padding:12px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:rgba(255,255,255,.86);
}
.adminOpsCheckBox b{
  display:block;
  margin-bottom:5px;
  color:#0f172a;
  font-size:13px;
  font-weight:950;
}
.adminOpsCheckBox span{
  display:block;
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:800;
  line-height:1.5;
}
.adminOpsWarnBox{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(251,191,36,.36);
  border-radius:16px;
  background:rgba(255,251,235,.78);
  color:#92400e;
  font-size:13px;
  font-weight:900;
  line-height:1.55;
}
.adminOpsSafeBox{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(34,197,94,.24);
  border-radius:16px;
  background:rgba(240,253,244,.72);
  color:#166534;
  font-size:13px;
  font-weight:900;
  line-height:1.55;
}
.prizeTable td input,
.prizeTable td select,
.fulfillTable td input,
.fulfillTable td select,
.settleTable td input,
.settleTable td select,
.reportTable td input,
.reportTable td select{
  max-width:100%;
}
.fulfillTable td,
.settleTable td,
.reportTable td,
.rankLockTable td,
.prizeTable td{
  word-break:keep-all;
}
.adminFlowGuide{
  overflow:hidden;
}
@media (max-width: 900px){
  .adminOpsFlowHead{display:grid;}
  .adminOpsFlowLinks{justify-content:flex-start;}
  .adminOpsCheckGrid{grid-template-columns:1fr!important;}
}
@media (max-width: 640px){
  .adminOpsFlowLinks a,
  .adminOpsFlowLinks button{width:100%;}
}
/* RANK_PRIZE_FLOW_STEP8_END */


/* SETTINGS_FINAL_STEP9_START */
.adminSettingsPage{
  max-width: 1380px;
}
.adminSettingsHero{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:18px;
  margin-bottom:14px;
  border:1px solid rgba(124,58,237,.14);
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,255,255,.97), rgba(248,250,252,.92));
  box-shadow:0 14px 34px rgba(15,23,42,.07);
}
.adminSettingsEyebrow{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  background:rgba(237,233,254,.9);
  color:#5b21b6;
  font-size:12px;
  font-weight:950;
}
.adminSettingsHero h1{
  margin:10px 0 6px;
  color:#0f172a;
  font-size:24px;
  line-height:1.2;
  letter-spacing:-.04em;
  font-weight:950;
}
.adminSettingsHero p{
  margin:0;
  color:rgba(15,23,42,.62);
  font-size:14px;
  font-weight:850;
  line-height:1.6;
}
.adminSettingsHeroSteps{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  min-width:350px;
}
.adminSettingsHeroSteps span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:#f1e8ff;
  color:#5b21b6;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminSettingsNotice,
.adminSettingsLockedBox{
  display:grid;
  gap:4px;
  padding:13px 14px;
  margin-bottom:14px;
  border:1px solid rgba(251,191,36,.36);
  border-radius:18px;
  background:rgba(255,251,235,.82);
  color:#92400e;
  line-height:1.55;
}
.adminSettingsNotice b,
.adminSettingsLockedBox b{
  font-size:13px;
  font-weight:950;
}
.adminSettingsNotice span,
.adminSettingsLockedBox span{
  font-size:13px;
  font-weight:850;
}
.adminSettingsLockedBox{
  margin:12px 0 14px;
  border-color:rgba(34,197,94,.24);
  background:rgba(240,253,244,.78);
  color:#166534;
}
.adminSettingsCard{
  padding:18px;
  margin-top:14px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 32px rgba(15,23,42,.06);
}
.adminSettingsCardHead{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.adminSettingsStep{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#f1e8ff;
  color:#5b21b6;
  font-size:12px;
  font-weight:950;
}
.adminSettingsCard h2{
  margin:9px 0 5px;
  color:#0f172a;
  font-size:20px;
  line-height:1.25;
  letter-spacing:-.035em;
  font-weight:950;
}
.adminSettingsCard p{
  margin:0;
  color:rgba(15,23,42,.62);
  font-size:13px;
  font-weight:850;
  line-height:1.55;
}
.adminSettingsStatus{
  min-width:260px;
  max-width:360px;
  padding:10px 12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:15px;
  background:#f8fafc;
  color:#475569;
  font-size:13px;
  font-weight:900;
  line-height:1.5;
  text-align:right;
  word-break:keep-all;
}
.adminSettingsStatus.ok{
  border-color:rgba(34,197,94,.24);
  background:rgba(240,253,244,.82);
  color:#166534;
}
.adminSettingsStatus.warn{
  border-color:rgba(251,191,36,.38);
  background:rgba(255,251,235,.86);
  color:#92400e;
}
.adminSettingsStatus.error{
  border-color:rgba(248,113,113,.34);
  background:rgba(254,242,242,.88);
  color:#991b1b;
}
.adminSettingsStatus.loading{
  border-color:rgba(167,139,250,.36);
  background:rgba(245,243,255,.86);
  color:#5b21b6;
}
.adminSettingsFormGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.adminSettingsFormGrid.fourCols{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.adminSettingsWideField{
  grid-column:span 2;
}
.adminSettingsField{
  display:block;
  margin:0;
  min-width:0;
}
.adminSettingsField span{
  display:block;
  margin-bottom:7px;
  color:#334155;
  font-size:13px;
  font-weight:950;
}
.adminSettingsField input,
.adminSettingsField select,
.adminSettingsField textarea{
  width:100%;
  min-width:0;
}
.adminSettingsField em{
  display:block;
  margin-top:7px;
  color:rgba(15,23,42,.52);
  font-size:12px;
  font-style:normal;
  font-weight:800;
  line-height:1.5;
}
.adminSettingsActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:15px;
}
.adminSettingsActions button,
.adminSettingsLinkButton{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.adminSettingsDetails{
  margin-top:14px;
  padding:12px;
  border:1px dashed rgba(148,163,184,.38);
  border-radius:16px;
  background:#f8fafc;
}
.adminSettingsDetails summary{
  cursor:pointer;
  color:#5b21b6;
  font-size:13px;
  font-weight:950;
}
.adminSettingsDetails div{
  margin-top:8px;
  color:rgba(15,23,42,.62);
  font-size:13px;
  font-weight:850;
  line-height:1.55;
}
.adminSettingsTwoCol{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:14px;
  align-items:start;
  margin-top:14px;
}
.adminSettingsUserBox{
  padding:13px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  background:rgba(248,250,252,.78);
}
.adminSettingsUserBox > b{
  display:block;
  margin-bottom:8px;
  color:#0f172a;
  font-size:14px;
  font-weight:950;
}
.adminSettingsUserList{
  display:grid;
  gap:8px;
}
.adminSettingsUserItem{
  padding:10px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:14px;
  background:#fff;
}
.adminSettingsUserItem b,
.adminSettingsUserItem span,
.adminSettingsUserItem em{
  display:block;
  word-break:break-word;
}
.adminSettingsUserItem b{
  color:#0f172a;
  font-size:13px;
  font-weight:950;
}
.adminSettingsUserItem span{
  margin-top:4px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.adminSettingsUserItem em{
  margin-top:5px;
  font-size:12px;
  font-style:normal;
  font-weight:950;
}
.adminSettingsUserItem.active em{
  color:#16a34a;
}
.adminSettingsUserItem.inactive em,
.adminSettingsUserItem.missing b{
  color:#dc2626;
}
@media (max-width: 1180px){
  .adminSettingsFormGrid,
  .adminSettingsFormGrid.fourCols{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .adminSettingsWideField{
    grid-column:auto;
  }
  .adminSettingsHeroSteps{
    min-width:0;
    justify-content:flex-start;
  }
}
@media (max-width: 820px){
  .adminSettingsHero,
  .adminSettingsCardHead{
    display:grid;
  }
  .adminSettingsStatus{
    min-width:0;
    max-width:none;
    text-align:left;
  }
  .adminSettingsFormGrid,
  .adminSettingsFormGrid.fourCols,
  .adminSettingsTwoCol{
    grid-template-columns:1fr!important;
  }
  .adminSettingsHeroSteps span,
  .adminSettingsActions button,
  .adminSettingsLinkButton{
    width:100%;
  }
}
/* SETTINGS_FINAL_STEP9_END */

/* DOG_ALBUM_ADMIN_STEP6_START */
.adminAlbumPage{
  display:grid;
  gap:14px;
}
.adminAlbumGuide{
  padding:18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 52%,#fff7ed 100%);
}
.adminAlbumGuideText{
  margin-top:8px;
  line-height:1.65;
  font-weight:800;
}
.adminAlbumGuideSteps,
.adminAlbumQuickButtons,
.adminAlbumPager,
.adminAlbumActionBox{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.adminAlbumGuideSteps{
  justify-content:flex-end;
  min-width:360px;
}
.adminAlbumGuideSteps span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(79,70,229,.16);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:#4338ca;
  font-size:13px;
  font-weight:950;
}
.adminAlbumSummaryGrid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.adminAlbumMetric{
  padding:14px;
  min-height:96px;
}
.adminAlbumMetric span,
.adminAlbumMetric em{
  display:block;
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:900;
  line-height:1.35;
  font-style:normal;
}
.adminAlbumMetric b{
  display:block;
  margin-top:8px;
  color:#0f172a;
  font-size:22px;
  font-weight:1000;
  line-height:1.15;
  word-break:break-word;
}
.adminAlbumMetric.warn b{color:#f97316;}
.adminAlbumMetric.danger b{color:#dc2626;}
.adminAlbumSearchCard,
.adminAlbumListCard,
.adminAlbumDetailCard{
  padding:16px;
}
.adminAlbumCardHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.adminAlbumFilters{
  display:grid;
  grid-template-columns:1.7fr 180px 180px 170px 170px 160px 130px;
  gap:10px;
  align-items:end;
}
.adminAlbumSearchMain{
  min-width:260px;
}
.adminAlbumSearchButton{
  min-height:46px;
}
.adminAlbumMessage{
  margin-top:10px;
  min-height:20px;
  font-weight:850;
}
.adminAlbumTableWrap{
  width:100%;
  overflow:auto;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:#fff;
}
.adminAlbumTable{
  width:100%;
  min-width:980px;
  border-collapse:separate;
  border-spacing:0;
}
.adminAlbumTable th,
.adminAlbumTable td{
  padding:12px;
  border-bottom:1px solid rgba(148,163,184,.18);
  vertical-align:middle;
  text-align:left;
  font-size:13px;
}
.adminAlbumTable th{
  background:#f8fafc;
  color:rgba(15,23,42,.64);
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminAlbumTable tr:last-child td{border-bottom:0;}
.adminAlbumEntryCell,
.adminAlbumDogCell{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.adminAlbumEntryCell b,
.adminAlbumDogCell b{
  display:block;
  color:#0f172a;
  font-size:14px;
  font-weight:1000;
  line-height:1.25;
  word-break:break-word;
}
.adminAlbumEntryCell span,
.adminAlbumDogCell span,
.adminAlbumSubText{
  display:block;
  margin-top:4px;
  color:rgba(15,23,42,.56);
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  word-break:break-word;
}
.adminAlbumThumb,
.adminAlbumThumbEmpty,
.adminAlbumDogThumb{
  width:68px;
  height:68px;
  border-radius:16px;
  object-fit:cover;
  flex:0 0 auto;
  border:1px solid rgba(148,163,184,.24);
  background:#f8fafc;
}
.adminAlbumThumbEmpty,
.adminAlbumDogThumb:not(img){
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(15,23,42,.52);
  font-size:12px;
  font-weight:950;
}
.adminAlbumBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.25);
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminAlbumBadge.good{
  color:#15803d;
  background:#f0fdf4;
  border-color:rgba(34,197,94,.22);
}
.adminAlbumBadge.warn{
  color:#c2410c;
  background:#fff7ed;
  border-color:rgba(249,115,22,.22);
}
.adminAlbumBadge.danger{
  color:#dc2626;
  background:#fef2f2;
  border-color:rgba(239,68,68,.22);
}
.adminAlbumBadge.info{
  color:#4338ca;
  background:#eef2ff;
  border-color:rgba(79,70,229,.18);
}
.adminAlbumSmallBtn{
  min-height:36px;
  white-space:nowrap;
}
.adminAlbumEmptyCell,
.adminAlbumEmptyBox{
  padding:30px!important;
  text-align:center!important;
  color:rgba(15,23,42,.52);
  font-size:14px;
  font-weight:900;
}
.adminAlbumDetailTop{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.adminAlbumDetailCover .adminAlbumThumb,
.adminAlbumDetailCover .adminAlbumThumbEmpty{
  width:100%;
  height:280px;
  border-radius:24px;
}
.adminAlbumDetailInfo{
  min-width:0;
}
.adminAlbumDetailTitleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.adminAlbumDetailTitleRow h2{
  margin:0;
  color:#0f172a;
  font-size:22px;
  font-weight:1000;
  line-height:1.25;
  word-break:break-word;
}
.adminAlbumInfoGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.adminAlbumInfoItem{
  padding:12px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:#f8fafc;
}
.adminAlbumInfoItem span{
  display:block;
  color:rgba(15,23,42,.54);
  font-size:12px;
  font-weight:900;
}
.adminAlbumInfoItem b{
  display:block;
  margin-top:7px;
  color:#0f172a;
  font-size:14px;
  font-weight:1000;
  line-height:1.45;
  word-break:break-word;
}
.adminAlbumInfoItem b span{
  margin-top:3px;
  font-weight:850;
}
.adminAlbumMemoBox{
  margin-top:12px;
  padding:13px;
  border:1px dashed rgba(148,163,184,.36);
  border-radius:16px;
  background:#fff;
}
.adminAlbumMemoBox b{
  display:block;
  margin-bottom:6px;
  color:#0f172a;
  font-size:13px;
  font-weight:1000;
}
.adminAlbumMemoBox p{
  margin:0;
  color:rgba(15,23,42,.72);
  font-size:14px;
  font-weight:850;
  line-height:1.65;
  white-space:pre-wrap;
  word-break:break-word;
}
.adminAlbumActionBox{
  margin-top:12px;
}
.adminAlbumDangerBtn{
  border-color:rgba(239,68,68,.22)!important;
  color:#dc2626!important;
  background:#fff!important;
}
.adminAlbumHelpText{
  margin-top:8px;
  color:rgba(15,23,42,.54);
  font-size:12px;
  font-weight:850;
  line-height:1.5;
}
.adminAlbumSubTitle{
  margin:18px 0 10px;
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
}
.adminAlbumMediaGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.adminAlbumMediaItem{
  display:block;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:#fff;
  text-decoration:none;
}
.adminAlbumMediaItem img{
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  background:#f8fafc;
}
.adminAlbumMediaItem span{
  display:block;
  padding:8px 10px;
  color:rgba(15,23,42,.56);
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.adminAlbumAlert{
  padding:14px;
  border-radius:16px;
  font-weight:900;
}
.adminAlbumAlert.danger{
  color:#dc2626;
  background:#fef2f2;
  border:1px solid rgba(239,68,68,.2);
}
@media (max-width: 1180px){
  .adminAlbumSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminAlbumFilters{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminAlbumSearchMain{grid-column:1 / -1;}
  .adminAlbumSearchButton{grid-column:auto;}
  .adminAlbumGuide{display:grid;}
  .adminAlbumGuideSteps{min-width:0; justify-content:flex-start;}
}
@media (max-width: 820px){
  .adminAlbumGuideSteps span,
  .adminAlbumQuickButtons button,
  .adminAlbumActionBox button,
  .adminAlbumActionBox a{width:100%;}
  .adminAlbumSummaryGrid,
  .adminAlbumFilters,
  .adminAlbumDetailTop,
  .adminAlbumInfoGrid,
  .adminAlbumMediaGrid{grid-template-columns:1fr;}
  .adminAlbumCardHead{display:grid;}
  .adminAlbumTable{min-width:880px;}
  .adminAlbumDetailCover .adminAlbumThumb,
  .adminAlbumDetailCover .adminAlbumThumbEmpty{height:240px;}
}
/* DOG_ALBUM_ADMIN_STEP6_END */

/* DOG_HEALTH_ADMIN_STEP13_START */
.adminHealthPage{
  display:grid;
  gap:14px;
}
.adminHealthGuide{
  padding:18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  background:linear-gradient(135deg,#ffffff 0%,#f7f9ff 52%,#f5f3ff 100%);
}
.adminHealthGuideText{
  margin-top:8px;
  line-height:1.65;
  font-weight:800;
}
.adminHealthGuideSteps,
.adminHealthQuickButtons,
.adminHealthPager,
.adminHealthActionBox{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.adminHealthGuideSteps{
  justify-content:flex-end;
  min-width:360px;
}
.adminHealthGuideSteps span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(79,70,229,.16);
  border-radius:999px;
  background:rgba(255,255,255,.8);
  color:#4338ca;
  font-size:13px;
  font-weight:950;
}
.adminHealthSummaryGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.adminHealthMetric{
  padding:14px;
  min-height:96px;
}
.adminHealthMetric span,
.adminHealthMetric em{
  display:block;
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:900;
  line-height:1.35;
  font-style:normal;
}
.adminHealthMetric b{
  display:block;
  margin-top:8px;
  color:#0f172a;
  font-size:22px;
  font-weight:1000;
  line-height:1.15;
  word-break:break-word;
}
.adminHealthMetric.warn b{color:#f97316;}
.adminHealthMetric.danger b{color:#dc2626;}
.adminHealthSearchCard,
.adminHealthListCard,
.adminHealthDetailCard{
  padding:16px;
}
.adminHealthCardHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.adminHealthFilters{
  display:grid;
  grid-template-columns:1.7fr 170px 170px 160px 160px 150px 120px;
  gap:10px;
  align-items:end;
}
.adminHealthSearchMain{
  min-width:260px;
}
.adminHealthSearchButton{
  min-height:46px;
}
.adminHealthMessage{
  margin-top:10px;
  min-height:20px;
  font-weight:850;
}
.adminHealthTableWrap{
  width:100%;
  overflow:auto;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:#fff;
}
.adminHealthTable{
  width:100%;
  min-width:1080px;
  border-collapse:separate;
  border-spacing:0;
}
.adminHealthTable th,
.adminHealthTable td{
  padding:12px;
  border-bottom:1px solid rgba(148,163,184,.18);
  vertical-align:middle;
  text-align:left;
  font-size:13px;
}
.adminHealthTable th{
  background:#f8fafc;
  color:rgba(15,23,42,.64);
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminHealthTable tr:last-child td{border-bottom:0;}
.adminHealthRecordCell,
.adminHealthDogCell{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.adminHealthRecordCell b,
.adminHealthDogCell b,
.adminHealthTable td > b{
  display:block;
  color:#0f172a;
  font-size:14px;
  font-weight:1000;
  line-height:1.25;
  word-break:break-word;
}
.adminHealthRecordCell span,
.adminHealthDogCell span,
.adminHealthSubText{
  display:block;
  margin-top:4px;
  color:rgba(15,23,42,.56);
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  word-break:break-word;
}
.adminHealthTypeIcon{
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:16px;
  background:#f5f3ff;
  border:1px solid rgba(124,58,237,.16);
  font-size:22px;
}
.adminHealthDogThumb{
  width:58px;
  height:58px;
  border-radius:16px;
  object-fit:cover;
  flex:0 0 auto;
  border:1px solid rgba(148,163,184,.24);
  background:#f8fafc;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(15,23,42,.52);
  font-size:20px;
  font-weight:950;
}
.adminHealthBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.25);
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminHealthBadge.good{
  color:#15803d;
  background:#f0fdf4;
  border-color:rgba(34,197,94,.22);
}
.adminHealthBadge.warn{
  color:#c2410c;
  background:#fff7ed;
  border-color:rgba(249,115,22,.22);
}
.adminHealthBadge.danger{
  color:#dc2626;
  background:#fef2f2;
  border-color:rgba(239,68,68,.22);
}
.adminHealthSmallBtn{
  min-height:36px;
  white-space:nowrap;
}
.adminHealthEmptyCell{
  padding:30px!important;
  text-align:center!important;
  color:rgba(15,23,42,.52);
  font-size:14px;
  font-weight:900;
}
.adminHealthDetailTop{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.adminHealthDetailDog{
  padding:14px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:22px;
  background:#fff;
}
.adminHealthDetailDog .adminHealthDogThumb{
  width:100%;
  height:190px;
  border-radius:20px;
  margin-bottom:12px;
  font-size:44px;
}
.adminHealthDetailDog b,
.adminHealthDetailDog span{
  display:block;
  word-break:break-word;
}
.adminHealthDetailDog b{
  color:#0f172a;
  font-size:18px;
  font-weight:1000;
}
.adminHealthDetailDog span{
  margin-top:5px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:850;
  line-height:1.45;
}
.adminHealthDetailInfo{
  min-width:0;
}
.adminHealthDetailTitleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.adminHealthDetailTitleRow h2{
  margin:0;
  color:#0f172a;
  font-size:22px;
  font-weight:1000;
  line-height:1.25;
  word-break:break-word;
}
.adminHealthInfoGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.adminHealthInfoGridWide{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.adminHealthInfoItem{
  padding:12px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:#f8fafc;
}
.adminHealthInfoItem span{
  display:block;
  color:rgba(15,23,42,.54);
  font-size:12px;
  font-weight:900;
}
.adminHealthInfoItem b{
  display:block;
  margin-top:7px;
  color:#0f172a;
  font-size:14px;
  font-weight:1000;
  line-height:1.45;
  white-space:pre-wrap;
  word-break:break-word;
}
.adminHealthSubTitle{
  margin:18px 0 10px;
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
}
.adminHealthActionBox{
  margin-top:12px;
}
.adminHealthDangerBtn{
  border-color:rgba(239,68,68,.22)!important;
  color:#dc2626!important;
  background:#fff!important;
}
.adminHealthHelpText{
  margin-top:8px;
  color:rgba(15,23,42,.54);
  font-size:12px;
  font-weight:850;
  line-height:1.5;
}
.adminHealthAlert{
  padding:14px;
  border-radius:16px;
  font-weight:900;
}
.adminHealthAlert.danger{
  color:#dc2626;
  background:#fef2f2;
  border:1px solid rgba(239,68,68,.2);
}
@media (max-width: 1180px){
  .adminHealthSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminHealthFilters{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminHealthSearchMain{grid-column:1 / -1;}
  .adminHealthSearchButton{grid-column:auto;}
  .adminHealthGuide{display:grid;}
  .adminHealthGuideSteps{min-width:0; justify-content:flex-start;}
}
@media (max-width: 820px){
  .adminHealthGuideSteps span,
  .adminHealthQuickButtons button,
  .adminHealthActionBox button{width:100%;}
  .adminHealthSummaryGrid,
  .adminHealthFilters,
  .adminHealthDetailTop,
  .adminHealthInfoGrid,
  .adminHealthInfoGridWide{grid-template-columns:1fr;}
  .adminHealthCardHead{display:grid;}
  .adminHealthTable{min-width:920px;}
  .adminHealthDetailDog .adminHealthDogThumb{height:210px;}
}
/* DOG_HEALTH_ADMIN_STEP13_END */

/* Dashboard total overview update 20260510 */
.adminDashboardEasyPage{
  max-width:1480px;
  padding:16px;
}
.adminEasyHero{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:start;
  padding:20px;
  border-radius:24px;
  border:1px solid rgba(124,58,237,.18);
  background:linear-gradient(135deg,rgba(237,233,254,.92),rgba(255,255,255,.96) 55%,rgba(219,234,254,.72));
  box-shadow:0 16px 45px rgba(15,23,42,.07);
}
.adminEasyKicker{
  display:inline-flex;
  align-items:center;
  height:28px;
  padding:0 11px;
  border-radius:999px;
  background:#fff;
  color:#4f46e5;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(124,58,237,.18);
}
.adminEasyHero h1{
  margin:10px 0 6px;
  font-size:28px;
  line-height:1.2;
  letter-spacing:-.04em;
  color:#0f172a;
}
.adminEasyHero p{
  margin:0;
  color:rgba(15,23,42,.66);
  font-size:14px;
  line-height:1.6;
}
.adminEasyToolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.adminEasyToolbar .input{
  width:130px;
  height:44px;
  background:#fff;
}
.adminEasyToolbar .btnPrimary{
  height:44px;
  min-width:100px;
}
.adminEasyMeta{
  grid-column:1 / -1;
  color:rgba(15,23,42,.62);
  font-size:13px;
  line-height:1.5;
}
.adminActionPanel,
.adminEasySection{
  margin-top:14px;
  padding:16px;
  border-radius:22px;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 32px rgba(15,23,42,.05);
}
.adminPanelHead,
.adminSectionHead{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:12px;
}
.adminPanelHead h2,
.adminSectionHead h2{
  margin:0;
  font-size:18px;
  font-weight:900;
  letter-spacing:-.03em;
  color:#0f172a;
}
.adminPanelHead p,
.adminSectionHead p{
  margin:5px 0 0;
  color:rgba(15,23,42,.58);
  font-size:13px;
  line-height:1.5;
}
.adminActionGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.adminActionCard{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:7px;
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.25);
  background:#f8fafc;
  color:inherit;
  text-decoration:none;
}
.adminActionCard.danger{background:linear-gradient(135deg,#fff1f2,#fff);border-color:rgba(244,63,94,.28);}
.adminActionCard.warn{background:linear-gradient(135deg,#fffbeb,#fff);border-color:rgba(245,158,11,.28);}
.adminActionCard.ok{background:linear-gradient(135deg,#ecfdf5,#fff);border-color:rgba(16,185,129,.22);}
.adminActionCard.info{background:linear-gradient(135deg,#eff6ff,#fff);border-color:rgba(59,130,246,.22);}
.adminActionTitle{
  color:rgba(15,23,42,.64);
  font-size:13px;
  font-weight:900;
}
.adminActionValue{
  font-size:25px;
  font-weight:950;
  letter-spacing:-.04em;
  color:#0f172a;
}
.adminActionDesc{
  color:rgba(15,23,42,.58);
  font-size:12px;
  line-height:1.45;
}
.adminMetricGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.adminMetricLink{
  display:block;
  text-decoration:none;
  color:inherit;
}
.adminMetricCard{
  min-height:112px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:20px;
  border:1px solid rgba(148,163,184,.22);
  background:linear-gradient(135deg,#fff,#f8fafc);
}
.adminMetricIcon{
  width:46px;
  height:46px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef2ff;
  font-size:24px;
  flex:0 0 auto;
}
.adminMetricLabel{
  color:rgba(15,23,42,.58);
  font-size:12px;
  font-weight:900;
}
.adminMetricValue{
  margin-top:2px;
  font-size:26px;
  line-height:1.1;
  font-weight:950;
  letter-spacing:-.04em;
  color:#0f172a;
}
.adminMetricDesc{
  margin-top:4px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  line-height:1.35;
}
.adminStatusGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.adminStatusGrid.adminTwoCol{
  grid-template-columns:1fr 1fr;
}
.adminStatusCard{
  min-width:0;
  padding:14px;
  border-radius:20px;
  border:1px solid rgba(148,163,184,.22);
  background:#fff;
}
.adminStatusTitle{
  margin-bottom:10px;
  font-size:15px;
  font-weight:950;
  letter-spacing:-.03em;
  color:#0f172a;
}
.adminKvList{
  display:grid;
  gap:0;
}
.adminKvRow{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding:8px 0;
  border-bottom:1px solid rgba(148,163,184,.16);
}
.adminKvRow b{
  display:block;
  color:rgba(15,23,42,.70);
  font-size:13px;
  font-weight:800;
}
.adminKvRow span{
  display:block;
  margin-top:3px;
  color:rgba(15,23,42,.48);
  font-size:11px;
  line-height:1.35;
}
.adminKvRow strong{
  color:#1d4ed8;
  font-size:13px;
  font-weight:950;
  text-align:right;
  white-space:normal;
  word-break:keep-all;
}
.adminKvColumns{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 16px;
}
.adminStatusLink{
  margin-top:12px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(124,58,237,.24);
  background:rgba(237,233,254,.48);
  color:#4f46e5;
  font-size:13px;
  font-weight:900;
  text-decoration:none;
}
.adminWorkflowEasyGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.adminWorkflowEasyCard{
  display:block;
  min-height:94px;
  padding:13px;
  border-radius:17px;
  border:1px solid rgba(148,163,184,.24);
  background:#f8fafc;
  color:inherit;
  text-decoration:none;
}
.adminWorkflowEasyCard b{
  display:block;
  font-size:14px;
  font-weight:950;
  color:#0f172a;
}
.adminWorkflowEasyCard span{
  display:block;
  margin-top:6px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  line-height:1.45;
}
.adminFullCard{
  margin-top:12px;
}
.adminAllLinksGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.adminQuickEasyItem{
  min-height:82px;
  display:grid;
  grid-template-columns:34px 1fr;
  grid-template-rows:auto auto;
  gap:2px 10px;
  align-items:center;
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.24);
  background:#fff;
  color:inherit;
  text-decoration:none;
}
.adminQuickEasyItem span{
  grid-row:1 / 3;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:13px;
  background:#eef2ff;
  font-size:18px;
}
.adminQuickEasyItem b{
  font-size:14px;
  font-weight:950;
  color:#0f172a;
}
.adminQuickEasyItem em{
  color:rgba(15,23,42,.54);
  font-size:12px;
  font-style:normal;
}
.adminActionCard:hover,
.adminMetricLink:hover .adminMetricCard,
.adminWorkflowEasyCard:hover,
.adminQuickEasyItem:hover,
.adminStatusLink:hover{
  transform:translateY(-1px);
  border-color:rgba(124,58,237,.34);
  box-shadow:0 12px 24px rgba(15,23,42,.07);
}
.adminActionCard,
.adminMetricCard,
.adminWorkflowEasyCard,
.adminQuickEasyItem,
.adminStatusLink{
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
@media (max-width:1280px){
  .adminActionGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminStatusGrid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .adminWorkflowEasyGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .adminAllLinksGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:820px){
  .adminEasyHero{grid-template-columns:1fr;padding:16px;}
  .adminEasyHero h1{font-size:23px;}
  .adminEasyToolbar{justify-content:flex-start;}
  .adminActionGrid,.adminMetricGrid,.adminStatusGrid,.adminStatusGrid.adminTwoCol,.adminWorkflowEasyGrid,.adminAllLinksGrid{grid-template-columns:1fr;}
  .adminKvColumns{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .adminDashboardEasyPage{padding:12px;}
  .adminEasyToolbar .input,.adminEasyToolbar .btnPrimary{width:100%;}
  .adminTopRight{gap:6px;}
  .adminTopRight .btnGhost{font-size:12px;padding:0 10px;}
}

/* DANGGRAM_ENGAGEMENT_ADMIN_STEP2_START */
.adminEngagementPage{max-width:1180px;margin:0 auto;padding:20px;}
.adminEngagementHero{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:stretch;padding:22px;border:1px solid rgba(124,58,237,.18);border-radius:26px;background:linear-gradient(135deg,#fff,#f7f5ff);box-shadow:0 18px 44px rgba(15,23,42,.06);}
.adminEngagementHero h1{margin:4px 0 8px;font-size:30px;line-height:1.18;color:#172554;letter-spacing:-.04em;}
.adminEngagementHero p{margin:0;color:rgba(15,23,42,.68);font-size:15px;line-height:1.65;}
.adminEngagementHeroSteps{display:flex;flex-direction:column;gap:9px;justify-content:center;}
.adminEngagementHeroSteps span{display:block;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid rgba(148,163,184,.22);font-size:13px;font-weight:900;color:#334155;}
.adminEngagementNotice{margin-top:14px;}
.adminEngagementCard{margin-top:16px;}
.adminEngagementToolbar{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:14px;}
.adminEngagementFeatureList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.adminEngagementFeature{padding:16px;border-radius:22px;border:1px solid rgba(148,163,184,.24);background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.04);}
.adminEngagementFeatureTop{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:flex-start;}
.adminEngagementGroup{display:inline-flex;align-items:center;min-height:24px;padding:4px 10px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:12px;font-weight:950;}
.adminEngagementFeature h3{margin:9px 0 6px;font-size:18px;color:#0f172a;letter-spacing:-.025em;}
.adminEngagementFeature p{margin:0;color:rgba(15,23,42,.62);font-size:13px;line-height:1.55;}
.adminEngagementSwitch{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;user-select:none;}
.adminEngagementSwitch input{width:24px;height:24px;accent-color:#7c3aed;}
.adminEngagementSwitch span{min-width:54px;text-align:center;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:950;}
.adminEngagementLocked{margin:12px 0;padding:9px 11px;border-radius:14px;background:#fff7ed;border:1px solid rgba(251,146,60,.28);color:#9a3412;font-size:12px;font-weight:900;}
.adminEngagementFeatureGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.adminEngagementFeatureGrid label span{display:block;margin-bottom:6px;font-size:12px;font-weight:950;color:#334155;}
.adminEngagementFeatureGrid .textarea{width:100%;min-height:98px;resize:vertical;font-size:13px;line-height:1.45;}
.adminEngagementUserGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.adminEngagementUser{padding:14px;border-radius:18px;border:1px solid rgba(148,163,184,.24);background:#fff;display:flex;flex-direction:column;gap:5px;}
.adminEngagementUser b{font-size:14px;color:#0f172a;word-break:break-all;}
.adminEngagementUser span{font-size:13px;color:#334155;word-break:break-all;}
.adminEngagementUser em{font-size:12px;font-style:normal;color:rgba(15,23,42,.55);}
.adminEngagementUser.active{border-color:rgba(34,197,94,.28);background:#f7fee7;}
.adminEngagementUser.missing{border-color:rgba(239,68,68,.28);background:#fff7f7;}
.adminEngagementEmpty{padding:24px;border-radius:18px;background:#f8fafc;color:#64748b;text-align:center;font-weight:900;}
@media (max-width:980px){.adminEngagementHero{grid-template-columns:1fr}.adminEngagementFeatureList{grid-template-columns:1fr}.adminEngagementUserGrid{grid-template-columns:1fr}.adminEngagementFeatureGrid{grid-template-columns:1fr}}
@media (max-width:520px){.adminEngagementPage{padding:12px}.adminEngagementHero{padding:16px}.adminEngagementHero h1{font-size:23px}.adminEngagementToolbar .btnGhost,.adminEngagementToolbar .btnPrimary{width:100%;justify-content:center}}
/* DANGGRAM_ENGAGEMENT_ADMIN_STEP2_END */


/* DANGGRAM_ADMIN_ACCOUNT_DELETE_20260511_START */
.adminDeletedUsersPage .adminDeletedSearchGrid{display:grid;grid-template-columns:minmax(220px,1fr) 130px;gap:12px;align-items:end;}
.adminDeletedUsersTable th:nth-child(1){min-width:150px;}
.adminDeletedUsersTable th:nth-child(2){min-width:230px;}
.adminDeletedUsersTable th:nth-child(4){min-width:150px;}
.adminDeletedUsersTable th:nth-child(5){min-width:180px;}
@media (max-width:720px){.adminDeletedUsersPage .adminDeletedSearchGrid{grid-template-columns:1fr;}.adminDeletedUsersPage .adminUsersSearchBtn{width:100%;}}
/* DANGGRAM_ADMIN_ACCOUNT_DELETE_20260511_END */

/* DANGGRAM_LAYER_POPUP_ADMIN_20260512_START */
.adminPopupPage{
  max-width:1500px;
  padding:18px;
}
.adminPopupPage *{
  box-sizing:border-box;
}
.adminPopupHero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,380px);
  gap:18px;
  align-items:stretch;
  padding:24px;
  border:1px solid rgba(124,58,237,.20);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(237,233,254,.92),rgba(255,255,255,.98) 54%,rgba(219,234,254,.78));
  box-shadow:0 16px 42px rgba(15,23,42,.07);
  margin-bottom:14px;
  overflow:hidden;
}
.adminPopupHeroMain{min-width:0;}
.adminPopupHero h1{
  margin:8px 0 10px;
  font-size:30px;
  line-height:1.2;
  letter-spacing:-.045em;
  color:#111827;
  word-break:keep-all;
}
.adminPopupHero p{
  margin:0;
  color:rgba(15,23,42,.68);
  line-height:1.65;
  font-size:15px;
  font-weight:800;
  word-break:keep-all;
}
.adminPopupHeroSteps{
  display:grid;
  gap:9px;
  align-content:center;
  min-width:0;
}
.adminPopupHeroSteps span{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(148,163,184,.25);
  font-weight:900;
  color:#334155;
  font-size:13px;
  line-height:1.35;
}
.adminPopupHeroSteps b{
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#7c3aed;
  color:#fff;
  font-size:14px;
}
.adminPopupNoticeBox{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  margin-bottom:14px;
  border:1px solid rgba(251,191,36,.36);
  border-radius:22px;
  background:rgba(255,251,235,.88);
  color:#92400e;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}
.adminPopupNoticeBox div{
  display:grid;
  gap:4px;
  min-width:0;
}
.adminPopupNoticeBox b{
  font-size:15px;
  font-weight:950;
}
.adminPopupNoticeBox span{
  font-size:13px;
  font-weight:850;
  line-height:1.55;
  word-break:keep-all;
}
.adminPopupNoticeBox .btnGhost{
  flex:0 0 auto;
  min-width:132px;
  height:42px;
  font-weight:900;
}
.adminPopupGrid{
  display:grid;
  grid-template-columns:minmax(620px,1fr) minmax(360px,430px);
  gap:16px;
  align-items:start;
}
.adminPopupSide{
  display:grid;
  gap:14px;
  align-self:start;
  position:sticky;
  top:78px;
  min-width:0;
}
.adminPopupEditor,
.adminPopupListCard,
.adminPopupPreviewCard{
  border-radius:24px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  min-width:0;
}
.adminPopupCardHead{
  align-items:flex-start;
  gap:12px;
}
.adminPopupCardHead.small{
  margin-bottom:12px;
}
.adminPopupStatus{
  min-width:210px;
  max-width:320px;
  font-weight:900;
  word-break:keep-all;
}
.adminPopupSection{
  margin-top:14px;
  padding:16px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:22px;
  background:linear-gradient(180deg,#fff,rgba(248,250,252,.72));
}
.adminPopupSectionHead{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
}
.adminPopupStepNo{
  width:34px;
  height:34px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:linear-gradient(135deg,#7c3aed,#3b82f6);
  color:#fff;
  font-weight:950;
  box-shadow:0 8px 18px rgba(79,70,229,.16);
}
.adminPopupSectionHead h3{
  margin:0 0 4px;
  color:#0f172a;
  font-size:19px;
  line-height:1.25;
  letter-spacing:-.03em;
  font-weight:950;
}
.adminPopupSectionHead p{
  margin:0;
  color:rgba(15,23,42,.62);
  font-size:13px;
  line-height:1.5;
  font-weight:850;
}
.adminPopupMetaGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.adminPopupControl{
  display:block;
  min-width:0;
  padding:12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  background:#fff;
}
.adminPopupControl span,
.adminPopupLargeField span{
  display:block;
  font-size:14px;
  font-weight:950;
  color:#1e293b;
  margin-bottom:8px;
}
.adminPopupControl em,
.adminPopupLargeField em{
  display:block;
  margin-top:7px;
  color:rgba(15,23,42,.52);
  font-size:12px;
  font-style:normal;
  font-weight:800;
}
.adminPopupPage .input,
.adminPopupPage .textarea,
.adminPopupPage select{
  width:100%;
  min-width:0;
  max-width:100%;
  border:1px solid rgba(148,163,184,.38);
  border-radius:16px;
  background:#fff;
  color:#0f172a;
  outline:none;
  font-size:15px;
  font-weight:850;
  line-height:1.35;
  box-shadow:inset 0 1px 0 rgba(15,23,42,.02);
  transition:border-color .12s ease,box-shadow .12s ease,background .12s ease;
}
.adminPopupPage .input,
.adminPopupPage select{
  height:50px;
  padding:0 14px;
}
.adminPopupPage .textarea{
  min-height:170px;
  padding:13px 14px;
  resize:vertical;
}
.adminPopupPage .input:focus,
.adminPopupPage .textarea:focus,
.adminPopupPage select:focus{
  border-color:rgba(124,58,237,.72);
  box-shadow:0 0 0 4px rgba(124,58,237,.10);
  background:#fff;
}
.adminPopupPage .input::placeholder,
.adminPopupPage .textarea::placeholder{
  color:rgba(100,116,139,.72);
  font-weight:700;
}
.adminPopupLangTabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:2px 0 14px;
  padding:10px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.20);
}
.adminPopupLangTabs button{
  flex:1 1 150px;
  min-height:44px;
  border:1px solid rgba(148,163,184,.34);
  background:#fff;
  border-radius:14px;
  padding:10px 14px;
  font-weight:950;
  cursor:pointer;
  color:#475569;
}
.adminPopupLangTabs button.active,
.adminPopupLangTabs button:hover{
  border-color:rgba(124,58,237,.55);
  background:linear-gradient(135deg,#7c3aed,#3b82f6);
  color:#fff;
  box-shadow:0 8px 20px rgba(79,70,229,.18);
}
.adminPopupLangCards{
  display:grid;
  gap:14px;
}
.adminPopupLangPanel{
  display:block;
  min-width:0;
  padding:16px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:22px;
  background:#fff;
  scroll-margin-top:92px;
}
.adminPopupLangPanel.active{
  display:block;
}
.adminPopupLangHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(148,163,184,.18);
}
.adminPopupLangHead b{
  color:#0f172a;
  font-size:18px;
  font-weight:950;
}
.adminPopupLangHead span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#eef2ff;
  color:#4f46e5;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.adminPopupLargeField{
  margin-bottom:14px;
}
.adminPopupLargeField:last-child{
  margin-bottom:0;
}
.adminPopupEditorActions{
  display:grid;
  grid-template-columns:160px 140px minmax(220px,1fr);
  gap:10px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(148,163,184,.22);
}
.adminPopupEditorActions .btnGhost,
.adminPopupEditorActions .btnPrimary{
  width:100%;
  height:50px;
  border-radius:16px;
  font-weight:950;
  font-size:15px;
}
.adminPopupEditorActions .btnPrimary{
  color:#fff;
  border-color:rgba(124,58,237,.62);
  background:linear-gradient(135deg,#7c3aed,#3b82f6);
  box-shadow:0 10px 22px rgba(79,70,229,.18);
}
.adminPopupEditorActions .danger{
  color:#dc2626;
  border-color:rgba(220,38,38,.25);
  background:#fff;
}
.adminPopupEditorActions button:disabled{
  opacity:.48;
  cursor:not-allowed;
}
.adminPopupList{
  display:grid;
  gap:10px;
  max-height:520px;
  overflow:auto;
  padding-right:2px;
}
.adminPopupItem{
  width:100%;
  min-width:0;
  text-align:left;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.96);
  border-radius:18px;
  padding:15px;
  cursor:pointer;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease;
}
.adminPopupItem:hover{
  transform:translateY(-1px);
  border-color:rgba(124,58,237,.38);
  box-shadow:0 10px 22px rgba(15,23,42,.06);
}
.adminPopupItem.selected{
  border-color:rgba(124,58,237,.65);
  background:linear-gradient(135deg,rgba(237,233,254,.94),rgba(255,255,255,.98));
}
.adminPopupItemTop{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.adminPopupItemTop b{
  min-width:0;
  font-size:15px;
  line-height:1.38;
  color:#0f172a;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.adminPopupItemTop span{
  flex:0 0 auto;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:950;
}
.adminPopupItemTop span.on{
  background:rgba(16,185,129,.11);
  color:#047857;
}
.adminPopupItemTop span.off{
  background:rgba(148,163,184,.16);
  color:#64748b;
}
.adminPopupItem p{
  margin:9px 0 10px;
  color:rgba(15,23,42,.64);
  font-size:13px;
  line-height:1.5;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.adminPopupItemMeta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  color:rgba(15,23,42,.50);
  font-size:12px;
  font-weight:850;
}
.adminPopupItemMeta span{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 8px;
  border-radius:999px;
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.18);
}
.adminPopupEmpty{
  padding:26px;
  border:1px dashed rgba(148,163,184,.42);
  border-radius:18px;
  text-align:center;
  color:rgba(15,23,42,.58);
  background:rgba(248,250,252,.85);
  font-weight:900;
  line-height:1.6;
}
.adminPopupPreviewBox{
  border:1px solid rgba(124,58,237,.18);
  border-radius:24px;
  padding:18px;
  background:linear-gradient(145deg,#fff,rgba(245,243,255,.94));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.adminPopupPreviewBadge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#f1e8ff;
  color:#6d28d9;
  font-size:12px;
  font-weight:950;
}
.adminPopupPreviewBox h3{
  margin:12px 0 8px;
  font-size:20px;
  line-height:1.35;
  color:#0f172a;
  font-weight:950;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.adminPopupPreviewBox p{
  margin:0;
  min-height:54px;
  color:rgba(15,23,42,.70);
  font-size:14px;
  line-height:1.62;
  font-weight:800;
  white-space:pre-wrap;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.adminPopupPreviewActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:16px;
}
.adminPopupPreviewActions span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.24);
  background:#fff;
  color:#334155;
  font-size:13px;
  font-weight:950;
  text-align:center;
}
.adminPopupPreviewActions span:first-child{
  color:#fff;
  border-color:rgba(124,58,237,.62);
  background:linear-gradient(135deg,#7c3aed,#3b82f6);
}
@media (max-width:1280px){
  .adminPopupGrid{grid-template-columns:1fr;}
  .adminPopupSide{position:static;grid-template-columns:1fr 1fr;}
  .adminPopupList{max-height:420px;}
}
@media (max-width:900px){
  .adminPopupPage{padding:14px;}
  .adminPopupHero{grid-template-columns:1fr;padding:18px;border-radius:24px;}
  .adminPopupHero h1{font-size:25px;}
  .adminPopupNoticeBox{align-items:stretch;flex-direction:column;}
  .adminPopupNoticeBox .btnGhost{width:100%;}
  .adminPopupSide{grid-template-columns:1fr;}
  .adminPopupMetaGrid{grid-template-columns:1fr;}
  .adminPopupCardHead{flex-direction:column;}
  .adminPopupStatus{min-width:0;max-width:none;width:100%;}
}
@media (max-width:640px){
  .adminPopupPage{padding:12px;}
  .adminPopupHero{padding:16px;border-radius:22px;}
  .adminPopupHero h1{font-size:22px;}
  .adminPopupHero p{font-size:13px;}
  .adminPopupHeroSteps span{grid-template-columns:28px minmax(0,1fr);font-size:12px;}
  .adminPopupHeroSteps b{width:28px;height:28px;}
  .adminPopupSection{padding:13px;border-radius:18px;}
  .adminPopupSectionHead{gap:10px;}
  .adminPopupSectionHead h3{font-size:17px;}
  .adminPopupLangPanel{padding:13px;border-radius:18px;}
  .adminPopupLangHead{align-items:flex-start;flex-direction:column;}
  .adminPopupLangTabs button{flex:1 1 100%;}
  .adminPopupEditorActions{grid-template-columns:1fr;}
  .adminPopupPreviewActions{grid-template-columns:1fr;}
  .adminPopupList{max-height:none;}
  .adminPopupPage .input,
  .adminPopupPage select{height:48px;font-size:14px;}
  .adminPopupPage .textarea{font-size:14px;min-height:150px;}
}
/* DANGGRAM_LAYER_POPUP_ADMIN_20260512_END */

/* DOG_HEALTH_REMINDER_ADMIN_20260513_START */
.adminHealthReminderCard{
  padding:16px;
  background:linear-gradient(135deg,#fff 0%,#f8fbff 55%,#f6f3ff 100%);
}
.adminHealthReminderGrid{
  display:grid;
  grid-template-columns:150px 170px 170px 150px 130px;
  gap:10px;
  align-items:end;
}
.adminHealthReminderSave{
  min-height:46px;
}
.adminHealthReminderSummary{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.adminHealthReminderSummary span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(148,163,184,.24);
  color:#475569;
  font-size:12px;
  font-weight:950;
}
.adminHealthReminderSummary b{
  color:#4f46e5;
  font-size:14px;
}
.adminHealthReminderHelp{
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(148,163,184,.2);
  color:rgba(15,23,42,.66);
  font-size:12px;
  font-weight:850;
  line-height:1.5;
}
.adminHealthReminderTableWrap{
  margin-top:12px;
}
.adminHealthReminderTable{
  min-width:1040px;
}
@media (max-width: 1180px){
  .adminHealthReminderGrid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 820px){
  .adminHealthReminderGrid{grid-template-columns:1fr;}
  .adminHealthReminderSave,
  #btnReminderReload{width:100%;}
}
/* DOG_HEALTH_REMINDER_ADMIN_20260513_END */

/* DANGGRAM_ADMIN_ATTENDANCE_20260513_START */
.adminAttendanceHero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin:18px 0;padding:26px;border-radius:28px;background:linear-gradient(135deg,#eef2ff 0%,#fff 66%,#fff7ed 100%);border:1px solid rgba(99,102,241,.14);box-shadow:0 18px 44px rgba(31,41,71,.08)}.adminAttendanceHero h1{margin:8px 0 8px;font-size:30px;line-height:1.18;letter-spacing:-.04em;color:#0f172a}.adminAttendanceHero p{margin:0;color:#64748b;font-weight:700;line-height:1.55}.adminAttendanceHeroSteps{display:flex;flex-direction:column;gap:9px;min-width:220px}.adminAttendanceHeroSteps span{display:flex;align-items:center;min-height:42px;border-radius:16px;background:#fff;border:1px solid #e8edf7;padding:0 14px;font-weight:900;color:#334155}.adminAttendanceNotice{margin-bottom:16px}.adminAttendanceFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.adminAttendanceSwitchField select{font-weight:900}.adminAttendanceActions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.adminAttendanceStatGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.adminAttendanceStat{border-radius:22px;background:#fff;border:1px solid #e8edf7;box-shadow:0 12px 28px rgba(31,41,71,.06);padding:18px}.adminAttendanceStat span{display:block;color:#64748b;font-size:13px;font-weight:800}.adminAttendanceStat b{display:block;margin-top:8px;color:#0f172a;font-size:28px;letter-spacing:-.03em}.adminAttendanceTableWrap{overflow:auto;border-radius:18px;border:1px solid #e8edf7}.adminAttendanceTable{width:100%;border-collapse:collapse;min-width:760px;background:#fff}.adminAttendanceTable th,.adminAttendanceTable td{padding:13px 14px;text-align:left;border-bottom:1px solid #eef2f7;vertical-align:middle}.adminAttendanceTable th{font-size:12px;color:#64748b;background:#f8fafc}.adminAttendanceTable td{font-size:14px;color:#1f2937}.adminAttendanceMember{font-weight:900;color:#111827}.adminSettingsStatus.good{color:#15803d}.adminSettingsStatus.bad{color:#dc2626}@media(max-width:820px){.adminAttendanceHero{grid-template-columns:1fr}.adminAttendanceHeroSteps{min-width:0}.adminAttendanceFormGrid,.adminAttendanceStatGrid{grid-template-columns:1fr}.adminAttendanceActions{flex-direction:column}.adminAttendanceActions .btnGhost,.adminAttendanceActions .btnPrimary{width:100%}}
/* DANGGRAM_ADMIN_ATTENDANCE_20260513_END */


/* DANGGRAM_ADMIN_PERSONALITY_STEP2_START */
.adminPersonalityTypeList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.adminPersonalityTypeCard{border:1px solid rgba(148,163,184,.24);border-radius:20px;background:#fff;padding:14px;box-shadow:0 10px 22px rgba(31,41,71,.05)}.adminPersonalityTypeHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.adminPersonalityTypeHead b{font-size:16px;color:#111827}.adminPersonalityTypeHead span{font-size:12px;font-weight:900;color:#6f5cff;background:#f3f0ff;border-radius:999px;padding:5px 9px}.adminPersonalityTypeCard textarea.input{height:auto;min-height:86px;line-height:1.45;padding-top:12px;resize:vertical}@media(max-width:900px){.adminPersonalityTypeList{grid-template-columns:1fr}}
/* DANGGRAM_ADMIN_PERSONALITY_STEP2_END */

/* DANGGRAM_ADMIN_DOG_GROUPS_STEP3_20260513_START */
.adminGroupsList{display:grid;gap:14px}.adminGroupEditCard{border:1px solid rgba(148,163,184,.24);border-radius:20px;background:#fff;padding:14px;box-shadow:0 10px 22px rgba(31,41,71,.05)}.adminGroupEditHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.adminGroupEditHead b{font-size:16px;color:#111827}.adminGroupEditHead select{max-width:130px}.adminGroupEditCard textarea.input{height:auto;min-height:78px;line-height:1.45;padding-top:12px;resize:vertical}.adminGroupEditMeta{font-size:12px;color:#64748b;margin-top:10px;font-weight:800}@media(max-width:900px){.adminGroupEditHead{align-items:stretch;flex-direction:column}.adminGroupEditHead select{max-width:none}}
/* DANGGRAM_ADMIN_DOG_GROUPS_STEP3_20260513_END */

/* DANGGRAM_ADMIN_SAFE_GLYPH_20260513_START */
.adminSafeGlyph{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 8px;margin-right:6px;border-radius:999px;font-size:12px;font-weight:900;line-height:1;vertical-align:middle;white-space:nowrap}.adminSafeGlyphGroup{color:#315cff;background:#eef4ff;border:1px solid #dbe7ff}.adminSafeGlyphPersonality{color:#d9468f;background:#fff0f7;border:1px solid #ffd8ea}
/* DANGGRAM_ADMIN_SAFE_GLYPH_20260513_END */

/* DANGGRAM_ADMIN_LOST_DOG_20260513_START */
.adminLostDogList{display:flex;flex-direction:column;gap:14px;}
.adminLostDogCard{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;border:1px solid #e5e7eb;border-radius:24px;background:#fff;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.05);}
.adminLostDogCard.status-pending{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff);}
.adminLostDogCard.status-approved{border-color:#fecaca;background:linear-gradient(135deg,#fff7f7,#fff);}
.adminLostDogPhoto{width:150px;height:150px;border-radius:20px;background:#f1f5f9;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:900;}
.adminLostDogPhoto img{width:100%;height:100%;object-fit:cover;display:block;}
.adminLostDogPhotoBroken::after{content:'사진 불러오기 실패';font-size:13px;color:#64748b;font-weight:900;}
.adminLostDogBody{min-width:0;display:flex;flex-direction:column;gap:8px;}
.adminLostDogTop{display:flex;align-items:center;gap:8px;min-width:0;}
.adminLostDogTop span{display:inline-flex;border-radius:999px;background:#fee2e2;color:#dc2626;padding:4px 9px;font-size:12px;font-weight:900;white-space:nowrap;}
.adminLostDogTop b{font-size:20px;color:#111827;}
.adminLostDogTop em{font-style:normal;color:#94a3b8;font-size:12px;}
.adminLostDogMeta,.adminLostDogUser{font-size:13px;color:#64748b;}
.adminLostDogText{border-radius:16px;background:#f8fafc;padding:10px 12px;}
.adminLostDogText b{display:block;font-size:12px;color:#475569;margin-bottom:4px;}
.adminLostDogText p{margin:0;color:#111827;line-height:1.45;white-space:pre-wrap;}
.adminLostDogMemo input{width:100%;}
.adminLostDogActions{display:flex;gap:8px;flex-wrap:wrap;}
@media (max-width:760px){.adminLostDogCard{grid-template-columns:1fr}.adminLostDogPhoto{width:100%;height:220px}}
/* DANGGRAM_ADMIN_LOST_DOG_20260513_END */


/* DANGGRAM_ADMIN_PET_PLACES_STEP5_20260513_START */
.adminPetPlaceHero{display:grid;grid-template-columns:minmax(0,1fr)260px;gap:22px;align-items:center;margin:18px 0;padding:26px;border-radius:28px;background:linear-gradient(135deg,#eff6ff 0%,#fff 64%,#f5f3ff 100%);border:1px solid rgba(59,130,246,.15);box-shadow:0 18px 44px rgba(31,41,71,.08)}
.adminPetPlaceHero h1{margin:8px 0 8px;font-size:30px;line-height:1.18;letter-spacing:-.04em;color:#0f172a}.adminPetPlaceHero p{margin:0;color:#64748b;font-weight:800;line-height:1.55}.adminPetPlaceHeroSteps{display:flex;flex-direction:column;gap:9px}.adminPetPlaceHeroSteps span{display:flex;align-items:center;min-height:42px;border-radius:16px;background:#fff;border:1px solid #e8edf7;padding:0 14px;font-weight:900;color:#334155}.adminPetPlaceHeroSteps b{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:999px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-size:12px}.adminPetPlaceNotice{margin-bottom:16px}.adminPetPlaceStatGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.adminPetPlaceStat{border-radius:22px;background:#fff;border:1px solid #e8edf7;box-shadow:0 12px 28px rgba(31,41,71,.06);padding:18px}.adminPetPlaceStat span{display:block;color:#64748b;font-size:13px;font-weight:800}.adminPetPlaceStat b{display:block;margin-top:8px;color:#0f172a;font-size:27px;letter-spacing:-.03em}.adminPetPlaceFormGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.adminPetPlaceFormGrid.full{grid-template-columns:1fr}.adminPetPlaceFormGrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.adminPetPlaceFormGrid .fieldWide{grid-column:1/-1}.adminPetPlaceFormGrid textarea.input{height:auto;min-height:86px;line-height:1.45;padding-top:12px;resize:vertical}.adminPetPlaceToggleRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.adminPetPlaceToggleRow label{display:flex;align-items:center;gap:8px;min-height:46px;border:1px solid #e8edf7;border-radius:16px;background:#f8fafc;padding:0 12px;font-weight:950;color:#334155}.adminPetPlaceToggleRow input{width:18px;height:18px}.adminPetPlaceActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.adminPetPlaceFilters{display:grid;grid-template-columns:170px 170px minmax(0,1fr)110px;gap:10px;align-items:end;margin:12px 0 16px}.adminPetPlaceList{display:grid;gap:14px}.adminPetPlaceCard{display:grid;grid-template-columns:126px minmax(0,1fr);gap:14px;border:1px solid #e5e7eb;border-radius:24px;background:#fff;padding:14px;box-shadow:0 12px 30px rgba(15,23,42,.05)}.adminPetPlaceCard.inactive{opacity:.62}.adminPetPlaceThumb{width:126px;height:126px;border-radius:20px;background:#f1f5f9;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:900}.adminPetPlaceThumb img{width:100%;height:100%;object-fit:cover;display:block}.adminPetPlaceBody{min-width:0;display:flex;flex-direction:column;gap:8px}.adminPetPlaceTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.adminPetPlaceTop b{font-size:20px;color:#111827}.adminPetPlaceBadge{display:inline-flex;align-items:center;border-radius:999px;background:#dbeafe;color:#1d4ed8;padding:4px 9px;font-size:12px;font-weight:900}.adminPetPlaceBadge.rec{background:#f3e8ff;color:#7c3aed}.adminPetPlaceBadge.ad{background:#fff7ed;color:#ea580c}.adminPetPlaceBadge.off{background:#fee2e2;color:#dc2626}.adminPetPlaceMeta{display:grid;gap:5px;color:#64748b;font-size:13px;font-weight:800}.adminPetPlaceMemo{border-radius:16px;background:#f8fafc;padding:10px 12px;color:#334155;line-height:1.45;white-space:pre-wrap}.adminPetPlaceCardActions{display:flex;gap:8px;flex-wrap:wrap}.adminPetPlaceCardActions button{height:36px;border-radius:999px;padding:0 13px;font-size:13px;font-weight:900}.adminPetPlaceEmpty{padding:28px;text-align:center;border:1px dashed #cbd5e1;border-radius:22px;background:#f8fafc;color:#64748b;font-weight:900}@media(max-width:1100px){.adminPetPlaceHero{grid-template-columns:1fr}.adminPetPlaceStatGrid,.adminPetPlaceFormGrid,.adminPetPlaceFormGrid.two,.adminPetPlaceToggleRow{grid-template-columns:repeat(2,minmax(0,1fr))}.adminPetPlaceFilters{grid-template-columns:1fr 1fr}}@media(max-width:760px){.adminPetPlaceStatGrid,.adminPetPlaceFormGrid,.adminPetPlaceFormGrid.two,.adminPetPlaceToggleRow,.adminPetPlaceFilters{grid-template-columns:1fr}.adminPetPlaceActions{flex-direction:column}.adminPetPlaceActions .btnGhost,.adminPetPlaceActions .btnPrimary{width:100%}.adminPetPlaceCard{grid-template-columns:1fr}.adminPetPlaceThumb{width:100%;height:190px}.adminPetPlaceHero{padding:18px;border-radius:24px}.adminPetPlaceHero h1{font-size:24px}}
/* DANGGRAM_ADMIN_PET_PLACES_STEP5_20260513_END */


/* DANGGRAM_ADMIN_PET_PLACES_STEP5_2_IMAGE_UPLOAD_20260513_START */
.adminPetPlaceImageField small{display:block;margin-top:7px;color:#64748b;font-size:12px;font-weight:800;line-height:1.4}.adminPetPlaceImagePreviewRow{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:stretch;margin-top:12px}.adminPetPlaceImagePreview{width:180px;height:136px;border-radius:20px;background:#f1f5f9;border:1px dashed #cbd5e1;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-weight:900}.adminPetPlaceImagePreview img{width:100%;height:100%;object-fit:cover;display:block}.adminPetPlaceImageHelp{border:1px solid #e8edf7;border-radius:20px;background:#f8fafc;padding:14px;display:flex;flex-direction:column;gap:7px;min-width:0}.adminPetPlaceImageHelp b{color:#0f172a;font-size:15px}.adminPetPlaceImageHelp p{margin:0;color:#64748b;font-size:13px;font-weight:800;line-height:1.45}.adminPetPlaceImageHelp code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:8px;color:#334155;font-size:12px}.adminPetPlaceImageHelp .btnGhost{align-self:flex-start;height:36px;border-radius:999px;padding:0 14px}@media(max-width:760px){.adminPetPlaceImagePreviewRow{grid-template-columns:1fr}.adminPetPlaceImagePreview{width:100%;height:190px}.adminPetPlaceImageHelp .btnGhost{width:100%}}
/* DANGGRAM_ADMIN_PET_PLACES_STEP5_2_IMAGE_UPLOAD_20260513_END */

/* DANGGRAM_ADVERTISER_ADMIN_STEP6_2_START */
.adminAdvertiserPage {
  padding-bottom: 80px;
}
.adminAdvertiserHero {
  border: 1px solid rgba(124, 92, 255, .16);
  border-radius: 24px;
  background: linear-gradient(135deg, #f7f8ff 0%, #ffffff 58%, #fff8ec 100%);
  box-shadow: 0 18px 48px rgba(15, 23, 42, .06);
  padding: 26px;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 18px;
  align-items: center;
  margin-bottom: 16px;
}
.adminAdvertiserHero h1 {
  margin: 8px 0 10px;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.22;
  color: #111827;
  letter-spacing: -0.04em;
}
.adminAdvertiserHero p {
  margin: 0;
  color: #5b6475;
  line-height: 1.6;
  word-break: keep-all;
}
.adminAdvertiserHeroSteps {
  display: grid;
  gap: 10px;
}
.adminAdvertiserHeroSteps span {
  border: 1px solid #e3e8f7;
  background: rgba(255,255,255,.78);
  border-radius: 14px;
  padding: 12px 14px;
  font-weight: 800;
  color: #24314d;
}
.adminAdvertiserNotice {
  margin-bottom: 16px;
}
.adminAdvertiserStatGrid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.adminAdvertiserStat {
  border: 1px solid #e7ecf6;
  background: #fff;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
}
.adminAdvertiserStat span {
  display: block;
  color: #667085;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 8px;
}
.adminAdvertiserStat b {
  color: #111827;
  font-size: 28px;
  letter-spacing: -0.04em;
}
.adminAdvertiserCard {
  margin-bottom: 16px;
}
.adminAdvertiserFilters {
  display: grid;
  grid-template-columns: 190px 1fr 140px 140px;
  gap: 10px;
  align-items: end;
}
.adminAdvertiserLayout {
  display: grid;
  grid-template-columns: minmax(360px, .9fr) minmax(420px, 1.1fr);
  gap: 16px;
  align-items: start;
}
.adminAdvertiserList,
.adminAdvertiserFiles,
.adminAdvertiserLogs {
  display: grid;
  gap: 10px;
}
.adminAdvertiserItem {
  border: 1px solid #e7ecf6;
  border-radius: 18px;
  background: #fff;
  padding: 14px;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.adminAdvertiserItem:hover,
.adminAdvertiserItem.selected {
  border-color: #8b7cf6;
  box-shadow: 0 14px 34px rgba(124, 92, 255, .12);
  transform: translateY(-1px);
}
.adminAdvertiserItemTop {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.adminAdvertiserItemTop b {
  font-size: 17px;
  color: #111827;
}
.adminAdvertiserItemTop em {
  font-style: normal;
  color: #8a94a6;
  margin-left: auto;
}
.adminAdvertiserItemMeta,
.adminAdvertiserItemUser,
.adminAdvertiserItemFoot {
  margin-top: 8px;
  color: #667085;
  font-size: 13px;
  line-height: 1.45;
}
.adminAdvertiserItemFoot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.adminAdvertiserBadge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 900;
  background: #eef2ff;
  color: #4f46e5;
  white-space: nowrap;
}
.adminAdvertiserBadge.submitted { background: #fff7ed; color: #ea580c; }
.adminAdvertiserBadge.need_more_docs { background: #fef3c7; color: #b45309; }
.adminAdvertiserBadge.approved { background: #e0f2fe; color: #0369a1; }
.adminAdvertiserBadge.rejected { background: #fee2e2; color: #dc2626; }
.adminAdvertiserBadge.paid,
.adminAdvertiserBadge.active { background: #dcfce7; color: #16a34a; }
.adminAdvertiserBadge.expired,
.adminAdvertiserBadge.suspended { background: #f1f5f9; color: #475569; }
.adminAdvertiserSmallBtn {
  min-height: 34px;
  padding: 0 14px;
  border-radius: 12px;
  white-space: nowrap;
}
.adminAdvertiserDetailEmpty,
.adminAdvertiserEmpty {
  border: 1px dashed #d7deea;
  border-radius: 18px;
  padding: 28px;
  text-align: center;
  color: #7b8496;
  background: #f8fafc;
}
.adminAdvertiserDetailStatus {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  border-bottom: 1px solid #edf1f7;
  padding-bottom: 14px;
  margin-bottom: 14px;
}
.adminAdvertiserDetailStatus b {
  color: #111827;
}
.adminAdvertiserDetailStatus em {
  font-style: normal;
  color: #8a94a6;
}
.adminAdvertiserInfoGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.adminAdvertiserInfoBox {
  border: 1px solid #e7ecf6;
  background: #f9fbff;
  border-radius: 14px;
  padding: 13px;
  min-width: 0;
}
.adminAdvertiserInfoBox span {
  display: block;
  color: #7b8496;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 5px;
}
.adminAdvertiserInfoBox b {
  display: block;
  color: #111827;
  word-break: break-all;
}
.adminAdvertiserTextBlock,
.adminAdvertiserReviewBox {
  border: 1px solid #e7ecf6;
  border-radius: 16px;
  padding: 14px;
  background: #fff;
  margin-top: 12px;
}
.adminAdvertiserTextBlock b,
.adminAdvertiserSectionTitle {
  display: block;
  font-size: 15px;
  font-weight: 900;
  color: #111827;
  margin: 16px 0 10px;
}
.adminAdvertiserTextBlock p {
  color: #475569;
  line-height: 1.6;
  margin: 8px 0 0;
}
.adminAdvertiserFileRow,
.adminAdvertiserLogRow {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border: 1px solid #e7ecf6;
  border-radius: 14px;
  padding: 12px;
  background: #f9fbff;
}
.adminAdvertiserFileRow div,
.adminAdvertiserLogRow div {
  min-width: 0;
}
.adminAdvertiserFileRow b,
.adminAdvertiserLogRow b {
  color: #111827;
  display: block;
}
.adminAdvertiserFileRow span,
.adminAdvertiserLogRow span,
.adminAdvertiserLogRow em {
  display: block;
  color: #667085;
  font-style: normal;
  font-size: 13px;
  margin-top: 4px;
  word-break: break-all;
}
.adminAdvertiserReviewGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.adminAdvertiserActions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.adminAdvertiserActions .danger {
  border-color: #fecaca;
  color: #dc2626;
  background: #fff5f5;
}
.adminSettingsCardHead.compact {
  margin-bottom: 12px;
}
@media (max-width: 1100px) {
  .adminAdvertiserHero,
  .adminAdvertiserLayout {
    grid-template-columns: 1fr;
  }
  .adminAdvertiserStatGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .adminAdvertiserFilters {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .adminAdvertiserHero {
    padding: 18px;
  }
  .adminAdvertiserStatGrid,
  .adminAdvertiserFilters,
  .adminAdvertiserInfoGrid,
  .adminAdvertiserReviewGrid {
    grid-template-columns: 1fr;
  }
  .adminAdvertiserFileRow,
  .adminAdvertiserLogRow,
  .adminAdvertiserItemFoot {
    align-items: flex-start;
    flex-direction: column;
  }
}
/* DANGGRAM_ADVERTISER_ADMIN_STEP6_2_END */
.adminAdvertiserAlreadyApproved {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 14px;
  background: #e0f2fe;
  color: #0369a1;
  font-weight: 900;
}

/* DANGGRAM_ADVERTISER_ADMIN_STEP6_5_MEMBERSHIP_20260517_START */
.adminAdvertiserOpsCard{margin-top:18px}.adminAdvertiserOpsNotice{display:flex;gap:10px;align-items:flex-start;border:1px solid #e0e7ff;background:#f8faff;border-radius:18px;padding:14px 16px;margin-bottom:14px;color:#475569;line-height:1.5;word-break:keep-all}.adminAdvertiserOpsNotice b{color:#3730a3;white-space:nowrap}.adminAdvertiserOpsFilters{display:grid;grid-template-columns:190px minmax(0,1fr) 130px 170px;gap:10px;align-items:end;margin-bottom:14px}.adminAdvertiserMembershipStats{margin-top:8px}.adminAdvertiserMembershipList,.adminAdvertiserPaymentList{display:grid;gap:12px}.adminAdvertiserOpsItem{border:1px solid #e7ecf6;border-radius:20px;background:#fff;padding:15px;box-shadow:0 10px 28px rgba(15,23,42,.045)}.adminAdvertiserOpsItem.compact{padding:14px}.adminAdvertiserOpsItemTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.adminAdvertiserOpsItemTop b{font-size:17px;color:#111827;letter-spacing:-.02em}.adminAdvertiserOpsItemTop em{font-style:normal;color:#94a3b8;margin-left:auto}.adminAdvertiserOpsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.adminAdvertiserOpsGrid>div{border:1px solid #eef2f7;background:#f9fbff;border-radius:14px;padding:11px;min-width:0}.adminAdvertiserOpsGrid span{display:block;color:#7b8496;font-size:12px;font-weight:900;margin-bottom:5px}.adminAdvertiserOpsGrid b{display:block;color:#111827;font-size:14px;word-break:break-all}.adminAdvertiserOpsActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.adminAdvertiserOpsActions .danger{border-color:#fecaca;color:#dc2626;background:#fff5f5}.adminAdvertiserOpsMemo{margin-top:10px;border:1px solid #fee2e2;background:#fff7f7;color:#b91c1c;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:800;word-break:break-all}@media(max-width:1100px){.adminAdvertiserOpsFilters{grid-template-columns:1fr 1fr}.adminAdvertiserOpsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.adminAdvertiserOpsFilters,.adminAdvertiserOpsGrid{grid-template-columns:1fr}.adminAdvertiserOpsNotice{flex-direction:column}.adminAdvertiserOpsActions .btnGhost{width:100%}.adminAdvertiserOpsItemTop em{margin-left:0}}
/* DANGGRAM_ADVERTISER_ADMIN_STEP6_5_MEMBERSHIP_20260517_END */

/* DANGGRAM_ADVERTISER_OPS_STATS_20260517_START */
.adminAdvertiserRefundList,.adminAdvertiserStatsList{display:grid;gap:12px}.adminAdvertiserDateFilters{grid-template-columns:170px 170px 170px 120px}.adminAdvertiserStatsFilters{grid-template-columns:170px 170px minmax(0,1fr) 140px}.adminAdvertiserOpsMiniInfo{display:inline-flex;align-items:center;border:1px solid #e0e7ff;background:#eef2ff;color:#3730a3;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900}.adminAdvertiserOpsGrid div b{line-height:1.35}@media(max-width:980px){.adminAdvertiserDateFilters,.adminAdvertiserStatsFilters{grid-template-columns:1fr 1fr}}@media(max-width:720px){.adminAdvertiserDateFilters,.adminAdvertiserStatsFilters{grid-template-columns:1fr}.adminAdvertiserOpsMiniInfo{width:100%;justify-content:center}}
/* DANGGRAM_ADVERTISER_OPS_STATS_20260517_END */

/* DANGGRAM_ADVERTISER_STEP6_11_12_POLICY_REPORT_20260517_START */
.adminAdvertiserOpsNotice.soft{margin-top:10px;background:#f8fafc;border-color:#e2e8f0;color:#475569}
.adminAdvertiserPolicyItem{border-color:rgba(99,102,241,.18)!important;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
.adminAdvertiserPolicyBox{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;margin-top:12px;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0;align-items:end}
.adminAdvertiserPolicyBox label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:900;color:#475569;min-width:0}
.adminAdvertiserPolicyBox input{height:36px!important;border-radius:10px!important;font-size:12px!important;padding:0 10px!important;background:#fff!important}
.adminAdvertiserPolicyBox .adminAdvertiserSmallBtn{height:36px;white-space:nowrap}
@media(max-width:980px){.adminAdvertiserPolicyBox{grid-template-columns:1fr 1fr}.adminAdvertiserPolicyBox .adminAdvertiserSmallBtn{grid-column:1/-1;width:100%}}
@media(max-width:560px){.adminAdvertiserPolicyBox{grid-template-columns:1fr}}
/* DANGGRAM_ADVERTISER_STEP6_11_12_POLICY_REPORT_20260517_END */
.adminAdvertiserStatsFilters{grid-template-columns:170px 170px minmax(0,1fr) 140px 140px}
@media(max-width:980px){.adminAdvertiserStatsFilters{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.adminAdvertiserStatsFilters{grid-template-columns:1fr}}

/* DANGGRAM_PERSONALITY_EXPERT_ADMIN_START */
.adminPersonalityExpertPage{padding-bottom:80px;}
.adminPersonalityExpertHero{display:flex;justify-content:space-between;gap:18px;margin:18px auto;padding:24px;border-radius:28px;background:linear-gradient(135deg,#fff1f7,#eef4ff);box-shadow:0 16px 38px rgba(40,30,70,.10);}
.adminPersonalityExpertHero h1{margin:6px 0 8px;font-size:26px;line-height:1.25;color:#241b32;}
.adminPersonalityExpertHero p{margin:0;color:#675f73;line-height:1.55;}
.adminPersonalityExpertHeroSteps{display:grid;gap:8px;min-width:210px;align-content:center;}
.adminPersonalityExpertHeroSteps span,.adminPersonalityExpertAllowed span{display:block;padding:9px 11px;border-radius:999px;background:rgba(255,255,255,.75);font-size:13px;font-weight:800;color:#6d5d85;}
.adminPersonalityExpertNotice{margin:14px 0;}
.adminPersonalityExpertTabs{display:flex;gap:8px;overflow-x:auto;padding:8px;margin:14px 0;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(20,20,40,.06);}
.adminPersonalityExpertTabs button{border:0;background:#f3f1f7;color:#554a67;border-radius:999px;padding:11px 14px;font-weight:900;white-space:nowrap;}
.adminPersonalityExpertTabs button.active{background:#282236;color:#fff;}
.adminPersonalityExpertTab{display:none;}
.adminPersonalityExpertTab.active{display:block;}
.adminPersonalityExpertCard{margin-top:16px;}
.adminPersonalityExpertStatGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;}
.adminPersonalityExpertStat{padding:16px;border-radius:20px;background:#fff;box-shadow:0 10px 24px rgba(20,20,40,.06);}
.adminPersonalityExpertStat span{display:block;color:#7a7285;font-size:13px;font-weight:800;}
.adminPersonalityExpertStat b{display:block;margin-top:8px;font-size:26px;color:#241b32;}
.adminPersonalityExpertAllowed{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;}
.adminPersonalityExpertAllowed b{margin-right:4px;}
.adminPersonalityExpertFilters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px;}
.adminPersonalityExpertFilters .input{max-width:360px;}
.adminPersonalityExpertQuestionList,.adminPersonalityExpertTypeList{display:grid;gap:12px;}
.adminPersonalityExpertQuestionCard,.adminPersonalityExpertTypeCard{padding:16px;border:1px solid #ebe7f2;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(30,25,50,.05);}
.adminPersonalityExpertQuestionHead,.adminPersonalityExpertTypeHead{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;align-items:center;}
.adminPersonalityExpertQuestionHead b,.adminPersonalityExpertTypeHead b{color:#241b32;}
.adminPersonalityExpertQuestionHead span,.adminPersonalityExpertTypeHead span{font-size:12px;font-weight:900;color:#7f6f98;background:#f5f1fb;border-radius:999px;padding:6px 9px;}
.adminPersonalityExpertTypeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.adminPersonalityExpertStatsWrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.adminPersonalityExpertStatsWrap h3{margin:0 0 10px;color:#241b32;}
.adminPersonalityExpertStatLine{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:14px;background:#f8f6fb;margin-bottom:8px;}
.adminPersonalityExpertStatLine span{font-weight:800;color:#40364f;}
.adminPersonalityExpertStatLine b{color:#282236;}
@media(max-width:780px){.adminPersonalityExpertHero{display:block}.adminPersonalityExpertHeroSteps{margin-top:14px}.adminPersonalityExpertStatGrid,.adminPersonalityExpertStatsWrap,.adminPersonalityExpertTypeGrid{grid-template-columns:1fr}.adminPersonalityExpertFilters .input{max-width:none;width:100%;}}
/* DANGGRAM_PERSONALITY_EXPERT_ADMIN_END */


/* DANGGRAM_FEATURE_GATE_ADMIN_UI_20260518_START */
.adminFeatureAccessBox{
  margin:14px 0 4px;
  padding:14px;
  border:1px solid #dbeafe;
  border-radius:18px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}
.adminFeatureAccessHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.adminFeatureAccessHead b{font-size:15px;color:#1f2937;}
.adminFeatureAccessHead span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  padding:6px 10px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.adminFeatureAccessBox p{margin:0 0 12px;color:#64748b;font-size:13px;line-height:1.55;word-break:keep-all;}
.adminFeatureAccessGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.adminFeatureAccessTextarea{min-height:104px!important;height:auto!important;line-height:1.45!important;padding:11px 12px!important;resize:vertical;}
@media(max-width:760px){.adminFeatureAccessHead{align-items:flex-start;flex-direction:column}.adminFeatureAccessGrid{grid-template-columns:1fr}.adminFeatureAccessHead span{white-space:normal}}
/* DANGGRAM_FEATURE_GATE_ADMIN_UI_20260518_END */


/* DANGGRAM_GROUP_NOTICE_ADMIN_20260519_START */
.adminGroupNoticeEditor{margin-top:12px;padding:14px;border:1px solid rgba(99,102,241,.18);border-radius:18px;background:linear-gradient(180deg,#f8faff 0%,#fff 100%);display:grid;gap:10px;}
.adminGroupNoticeHead{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.adminGroupNoticeHead b{font-size:15px;color:#1e293b;}
.adminGroupNoticeHead select{max-width:140px;}
.adminGroupNoticeHelp{font-size:12px;color:#64748b;font-weight:800;line-height:1.45;}
.adminGroupNoticeEditor textarea.input{min-height:96px;}
@media(max-width:900px){.adminGroupNoticeHead{align-items:stretch;flex-direction:column}.adminGroupNoticeHead select{max-width:none}}
/* DANGGRAM_GROUP_NOTICE_ADMIN_20260519_END */

/* Lost dog approval UX - 20260519 */
.adminLostDogsApprovalPage{max-width:1160px;}
.adminLostDogsApprovalHero{background:linear-gradient(135deg,#fff7f7 0%,#fff 58%,#f8fafc 100%);border-color:#fecaca;}
.adminLostDogsHeroSteps span{background:#fff;border:1px solid #fecaca;color:#b91c1c;box-shadow:0 10px 22px rgba(239,68,68,.08);}
.adminLostApprovalBoard{border:1px solid #fecaca;background:linear-gradient(135deg,#fff1f2 0%,#fff 68%);border-radius:28px;padding:22px;margin:18px 0;box-shadow:0 18px 44px rgba(239,68,68,.08);display:flex;align-items:center;justify-content:space-between;gap:18px;}
.adminLostApprovalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex:1;min-width:0;}
.adminLostApprovalHead h2{margin:4px 0 8px;font-size:24px;color:#111827;letter-spacing:-.04em;}
.adminLostApprovalHead p{margin:0;color:#64748b;line-height:1.55;font-weight:700;word-break:keep-all;}
.adminLostApprovalActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.adminLostStatGrid{margin-top:14px;}
.adminLostStatButton{border:1px solid #e5e7eb;text-align:left;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;background:#fff;}
.adminLostStatButton:hover{transform:translateY(-2px);border-color:#fecaca;box-shadow:0 14px 30px rgba(239,68,68,.1);}
.adminLostDogsFilterCard{margin-top:16px;}
.adminLostDogsFilterHead{align-items:center;}
.adminLostStatusFilterField{min-width:220px;margin:0;}
.adminLostDogReviewList{gap:16px;}
.adminLostDogReviewCard{grid-template-columns:210px minmax(0,1fr);padding:18px;border-radius:28px;border-color:#e5e7eb;position:relative;overflow:hidden;}
.adminLostDogReviewCard.status-pending{border-color:#fca5a5;background:linear-gradient(135deg,#fff7f7 0%,#fff 56%);box-shadow:0 18px 42px rgba(239,68,68,.08);}
.adminLostDogReviewCard.status-approved{border-color:#fecaca;background:linear-gradient(135deg,#fff7f7,#fff);}
.adminLostDogReviewPhotoWrap{position:relative;min-width:0;}
.adminLostDogPhotoButton{border:0;padding:0;cursor:pointer;}
.adminLostDogReviewPhotoWrap .adminLostDogPhoto{width:210px;height:210px;border-radius:24px;background:#f1f5f9;}
.adminLostDogUrgentBadge{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ef4444;color:#fff;font-size:12px;font-weight:950;padding:6px 10px;box-shadow:0 10px 20px rgba(239,68,68,.18);}
.adminLostDogReviewBody{gap:10px;}
.adminLostDogReviewTop b{font-size:24px;letter-spacing:-.04em;}
.adminLostDogReviewGuide{border-radius:16px;background:#fff1f2;color:#991b1b;font-weight:900;font-size:14px;line-height:1.5;padding:12px 14px;word-break:keep-all;}
.adminLostDogReviewInfo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.adminLostDogReviewInfo div{border:1px solid #eef2f7;background:#fff;border-radius:14px;padding:10px 12px;min-width:0;}
.adminLostDogReviewInfo b{display:block;color:#64748b;font-size:12px;margin-bottom:4px;}
.adminLostDogReviewInfo span{display:block;color:#111827;font-weight:900;font-size:14px;word-break:break-word;}
.adminLostDogDescription p{max-height:76px;overflow:auto;}
.adminLostDogReviewActions .btnPrimary{background:linear-gradient(135deg,#ef4444,#8b5cf6);border:0;box-shadow:0 12px 26px rgba(239,68,68,.16);}
.adminLostEmpty{border:1px dashed #cbd5e1;border-radius:20px;background:#f8fafc;color:#64748b;font-weight:900;text-align:center;padding:32px 18px;}
.adminLostDogsSettingsCard{margin-top:16px;}
.adminLostSettingsSummary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:950;color:#111827;list-style:none;padding:2px 0;}
.adminLostSettingsSummary::-webkit-details-marker{display:none;}
.adminLostSettingsSummary span{font-size:18px;}
.adminLostSettingsSummary em{font-style:normal;color:#64748b;font-size:13px;font-weight:800;}
.adminLostSettingsBody{padding-top:18px;}
.adminLostDogModal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:22px;}
.adminLostDogModal.is-open{display:flex;}
.adminLostDogModalBackdrop{position:absolute;inset:0;background:rgba(15,23,42,.58);backdrop-filter:blur(4px);}
.adminLostDogModalPanel{position:relative;width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 34px);overflow:auto;border-radius:28px;background:#fff;padding:22px;box-shadow:0 30px 90px rgba(15,23,42,.35);}
.adminLostDogModalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.adminLostDogModalHead h2{margin:6px 0 2px;font-size:30px;color:#111827;letter-spacing:-.05em;}
.adminLostDogModalHead p{margin:0;color:#64748b;font-weight:800;}
.adminLostDogModalBadge{display:inline-flex;border-radius:999px;background:#fee2e2;color:#dc2626;padding:6px 10px;font-size:12px;font-weight:950;}
.adminLostDogPhotoLarge{width:100%;height:340px!important;border-radius:24px;margin-bottom:14px;}
.adminLostDogModalNotice{border-radius:18px;background:#fff1f2;color:#991b1b;font-weight:950;line-height:1.55;padding:14px 16px;margin-bottom:12px;word-break:keep-all;}
.adminLostDogModalInfo{margin-bottom:12px;}
.adminLostDogModalActions{margin-top:14px;}
@media(max-width:860px){
  .adminLostApprovalBoard{flex-direction:column;align-items:stretch;}
  .adminLostApprovalHead{flex-direction:column;}
  .adminLostApprovalActions{justify-content:flex-start;}
  .adminLostDogReviewCard{grid-template-columns:1fr;}
  .adminLostDogReviewPhotoWrap .adminLostDogPhoto{width:100%;height:260px;}
  .adminLostDogsFilterHead{align-items:flex-start;flex-direction:column;}
  .adminLostStatusFilterField{width:100%;min-width:0;}
}
@media(max-width:560px){
  .adminLostApprovalHead h2{font-size:21px;}
  .adminLostApprovalActions .btnPrimary,.adminLostApprovalActions .btnGhost{width:100%;}
  .adminLostDogReviewInfo{grid-template-columns:1fr;}
  .adminLostDogReviewActions .btnPrimary,.adminLostDogReviewActions .btnGhost,.adminLostDogModalActions .btnPrimary,.adminLostDogModalActions .btnGhost{width:100%;justify-content:center;}
  .adminLostDogModal{padding:10px;}
  .adminLostDogModalPanel{padding:16px;border-radius:22px;}
  .adminLostDogModalHead{flex-direction:column;}
  .adminLostDogPhotoLarge{height:260px!important;}
}

/* DANGGRAM_LOST_DOG_ADMIN_BUTTON_FIX_20260519_START */
.adminLostDogsApprovalPage .btnPrimary,
.adminLostDogsApprovalPage .btnGhost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:42px;
  padding:0 16px;
  line-height:1.2;
  font-weight:950;
  text-align:center;
  white-space:nowrap;
  word-break:keep-all;
  flex:0 0 auto;
}
.adminLostApprovalActions{
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.adminLostApprovalActions .btnPrimary,
.adminLostApprovalActions .btnGhost{
  width:auto;
  min-width:132px;
  max-width:100%;
}
.adminLostApprovalActions #btnShowPending{
  min-width:154px;
}
.adminLostDogReviewActions,
.adminLostDogModalActions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.adminLostDogReviewActions .btnPrimary,
.adminLostDogReviewActions .btnGhost,
.adminLostDogModalActions .btnPrimary,
.adminLostDogModalActions .btnGhost{
  flex:1 1 170px;
  min-width:150px;
  min-height:44px;
  border-radius:16px;
  padding:0 18px;
}
.adminLostDogReviewActions .jsAlert,
.adminLostDogReviewActions .jsApproveAlert,
.adminLostDogModalActions .jsAlert,
.adminLostDogModalActions .jsApproveAlert{
  background:linear-gradient(135deg,#ef4444 0%,#e11d48 48%,#7c3aed 100%)!important;
  border:0!important;
  color:#fff!important;
  box-shadow:0 14px 30px rgba(225,29,72,.22)!important;
}
.adminLostDogReviewActions .jsAlert::before,
.adminLostDogModalActions .jsAlert::before{
  content:'🔔';
  font-size:15px;
  line-height:1;
}
.adminLostDogReviewActions .jsApproveAlert::before,
.adminLostDogModalActions .jsApproveAlert::before{
  content:'✓';
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  font-size:12px;
  line-height:1;
}
.adminLostDogReviewActions .btnGhost,
.adminLostDogModalActions .btnGhost{
  background:#fff;
  color:#334155;
  border-color:#e2e8f0;
}
.adminLostDogReviewActions .jsOpenDetail,
.adminLostDogModalActions .jsOpenDetail{
  border-color:#dbeafe;
  color:#1d4ed8;
  background:#f8fbff;
}
.adminLostDogReviewActions .jsClose,
.adminLostDogModalActions .jsClose,
.adminLostDogReviewActions .jsReject,
.adminLostDogModalActions .jsReject{
  border-color:#fecaca;
  color:#dc2626;
  background:#fff7f7;
}
@media(max-width:860px){
  .adminLostApprovalActions{justify-content:flex-start;}
  .adminLostApprovalActions .btnPrimary,
  .adminLostApprovalActions .btnGhost{
    min-width:130px;
  }
}
@media(max-width:560px){
  .adminLostApprovalActions{
    display:grid;
    grid-template-columns:1fr;
  }
  .adminLostApprovalActions .btnPrimary,
  .adminLostApprovalActions .btnGhost,
  .adminLostDogReviewActions .btnPrimary,
  .adminLostDogReviewActions .btnGhost,
  .adminLostDogModalActions .btnPrimary,
  .adminLostDogModalActions .btnGhost{
    width:100%;
    min-width:0;
    flex:1 1 100%;
  }
}
/* DANGGRAM_LOST_DOG_ADMIN_BUTTON_FIX_20260519_END */

/* 2026-05-19 소모임 신고/게시글 관리/신규생성 보강 */
.adminGroupCreateCard{border-color:rgba(124,58,237,.22)!important;background:linear-gradient(135deg,#ffffff 0%,#faf7ff 100%)!important}.adminGroupCreateGrid{margin-bottom:12px}.adminGroupPostTable td small{display:block;margin-top:6px;color:#64748b;font-weight:700;line-height:1.35;max-width:420px}.adminGroupStatusPill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:28px;border-radius:999px;font-size:12px;font-weight:900}.adminGroupStatusPill.good{background:#ecfdf5;color:#047857}.adminGroupStatusPill.warn{background:#fff7ed;color:#c2410c}.adminGroupStatusPill.bad{background:#fef2f2;color:#dc2626}.adminGroupReportCount{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;background:#fee2e2;color:#dc2626;font-weight:900}.adminGroupInlineActions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.adminGroupInlineActions .btnGhost{min-height:34px;border-radius:12px;padding:0 12px;font-size:12px;font-weight:900}.adminGroupInlineActions .btnGhost.danger{border-color:#fecdd3;color:#e11d48;background:#fff5f7}.adminGroupReportList{display:grid;gap:12px}.adminGroupEmptyBox{border:1px dashed rgba(148,163,184,.4);border-radius:18px;padding:20px;color:#64748b;font-weight:800;text-align:center;background:#f8fafc}.adminGroupReportCard{border:1px solid rgba(248,113,113,.28);border-radius:20px;padding:14px;background:linear-gradient(135deg,#fff 0%,#fff7f7 100%);box-shadow:0 10px 22px rgba(31,41,71,.05)}.adminGroupReportTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.adminGroupReportTop b{display:inline-flex;align-items:center;border-radius:999px;background:#fee2e2;color:#dc2626;padding:7px 10px;font-size:12px;font-weight:900}.adminGroupReportTop span{font-size:12px;color:#94a3b8;font-weight:800}.adminGroupReportTitle{font-size:16px;font-weight:900;color:#111827;margin-bottom:10px}.adminGroupReportReason{display:grid;grid-template-columns:64px 1fr;gap:8px;padding:9px 10px;border-radius:14px;background:#fff;margin-bottom:8px;border:1px solid rgba(148,163,184,.16)}.adminGroupReportReason b{color:#475569;font-size:12px}.adminGroupReportReason span{color:#111827;font-size:13px;font-weight:800;word-break:break-word}.adminGroupReportBody{border-radius:16px;background:#f8fafc;padding:12px;color:#475569;font-size:13px;line-height:1.45;word-break:break-word;margin-bottom:10px}.adminGroupReportFooter{display:flex;align-items:center;justify-content:space-between;gap:12px}.adminGroupReportFooter>span{font-size:12px;color:#64748b;font-weight:800}@media(max-width:900px){.adminGroupReportFooter{display:grid}.adminGroupInlineActions .btnGhost{flex:1;min-width:92px}.adminGroupPostTable td small{max-width:none}}

/* DANGGRAM_FEED_SHORTCUT_DISPLAY_20260519_START */
.adminEngagementDisplayMode{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;margin:12px 0;padding:10px 12px;border-radius:16px;background:#f8fafc;border:1px solid rgba(148,163,184,.22)}
.adminEngagementDisplayMode span{font-size:12px;font-weight:950;color:#334155}.adminEngagementDisplayMode .select{height:40px;border-radius:12px;border:1px solid rgba(148,163,184,.35);background:#fff;padding:0 12px;font-weight:900;color:#0f172a}
@media(max-width:520px){.adminEngagementDisplayMode{grid-template-columns:1fr}.adminEngagementDisplayMode .select{width:100%}}
/* DANGGRAM_FEED_SHORTCUT_DISPLAY_20260519_END */

/* ENGAGEMENT_CONFIGURABLE_20260520_START */
.adminEngagementOpsCard{scroll-margin-top:88px;}
.adminEngagementHelpBox{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:12px 14px;border:1px solid rgba(251,146,60,.30);border-radius:16px;background:#fff7ed;color:#9a3412;font-size:13px;font-weight:850;line-height:1.55;}
.adminEngagementHelpBox b{flex:0 0 auto;font-weight:950;}
.adminEngagementHelpBox code{display:inline-flex;padding:1px 6px;border-radius:7px;background:#fff;color:#7c2d12;border:1px solid rgba(251,146,60,.25);font-size:12px;font-weight:950;}
.adminEngagementManageList{display:grid;gap:14px;}
.adminEngagementManageItem{padding:16px;border-radius:22px;border:1px solid rgba(148,163,184,.24);background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.04);min-width:0;}
.adminEngagementManageTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:flex-start;margin-bottom:12px;}
.adminEngagementManageTop.compact{margin-bottom:10px;}
.adminEngagementMiniBadge{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:12px;font-weight:950;}
.adminEngagementManageTop h3{margin:8px 0 5px;color:#0f172a;font-size:18px;font-weight:950;letter-spacing:-.025em;word-break:keep-all;}
.adminEngagementManageTop p{margin:0;color:rgba(15,23,42,.62);font-size:13px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;}
.adminEngagementSwitch.small input{width:24px;height:24px;}
.adminEngagementFormGrid{display:grid;gap:10px;margin-top:10px;}
.adminEngagementFormGrid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.adminEngagementFormGrid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.adminEngagementFormGrid.four{grid-template-columns:repeat(4,minmax(0,1fr));}
.adminEngagementFormGrid label,.adminEngagementFullField{display:block;min-width:0;}
.adminEngagementFormGrid span,.adminEngagementFullField span{display:block;margin:0 0 6px;color:#334155;font-size:12px;font-weight:950;}
.adminEngagementFormGrid em{display:block;margin-top:5px;color:rgba(15,23,42,.50);font-size:11px;font-style:normal;font-weight:800;}
.adminEngagementFormGrid .input,.adminEngagementFormGrid .select,.adminEngagementFormGrid .textarea,.adminEngagementFullField .textarea{width:100%;min-width:0;border:1px solid rgba(148,163,184,.34);border-radius:14px;background:#fff;color:#0f172a;font-weight:850;line-height:1.38;outline:none;}
.adminEngagementFormGrid .input,.adminEngagementFormGrid .select{height:42px;padding:0 11px;}
.adminEngagementFormGrid .textarea,.adminEngagementFullField .textarea{min-height:74px;padding:10px 11px;resize:vertical;}
.adminEngagementFormGrid .input:focus,.adminEngagementFormGrid .select:focus,.adminEngagementFormGrid .textarea:focus,.adminEngagementFullField .textarea:focus{border-color:rgba(124,58,237,.62);box-shadow:0 0 0 4px rgba(124,58,237,.10);}
.adminEngagementFormGrid .input[readonly]{background:#f8fafc;color:#64748b;}
.adminEngagementLangBox{margin-top:12px;padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:#f8fafc;}
.adminEngagementLangTitle{font-size:13px;font-weight:950;color:#475569;margin-bottom:8px;}
.adminEngagementDetails{margin-top:12px;padding:11px 12px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:#fff;}
.adminEngagementDetails summary{cursor:pointer;color:#4f46e5;font-size:13px;font-weight:950;}
.adminEngagementCheckRow{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid rgba(148,163,184,.20);}
.adminEngagementCheckRow label{display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:900;color:#334155;}
.adminEngagementFullField{margin-top:10px;}
@media(max-width:1100px){.adminEngagementFormGrid.four{grid-template-columns:repeat(2,minmax(0,1fr));}.adminEngagementFormGrid.three{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.adminEngagementManageTop{grid-template-columns:1fr}.adminEngagementFormGrid.two,.adminEngagementFormGrid.three,.adminEngagementFormGrid.four{grid-template-columns:1fr}.adminEngagementHelpBox{flex-direction:column}.adminEngagementToolbar .btnGhost,.adminEngagementToolbar .btnPrimary{width:100%;justify-content:center}}
/* ENGAGEMENT_CONFIGURABLE_20260520_END */

/* DANGGRAM_ADMIN_ALBUM_CATEGORY_20260521_START */
.adminAlbumCategoryCard{margin-top:16px;}
.adminAlbumCategoryForm{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 120px 120px 150px;gap:10px;align-items:end;margin-top:14px;}
.adminAlbumCategorySaveBtn{height:44px;}
.adminAlbumCategoryTableWrap{margin-top:14px;}
.adminAlbumCategoryTable td{vertical-align:middle;}
@media(max-width:1100px){.adminAlbumCategoryForm{grid-template-columns:1fr 1fr 1fr;}.adminAlbumCategorySaveBtn{grid-column:1/-1;}}
@media(max-width:720px){.adminAlbumCategoryForm{grid-template-columns:1fr;}.adminAlbumCategoryTableWrap{overflow-x:auto;}}
/* DANGGRAM_ADMIN_ALBUM_CATEGORY_20260521_END */


/* DANGGRAM_POINT_MALL_ADMIN_STEP2_20260525_START */
.adminPointMallHero{display:grid;grid-template-columns:minmax(0,1fr)280px;gap:22px;align-items:center;margin:18px 0;padding:26px;border-radius:28px;background:linear-gradient(135deg,#fff7ed 0%,#fff 58%,#eef2ff 100%);border:1px solid rgba(249,115,22,.16);box-shadow:0 18px 44px rgba(31,41,71,.08)}
.adminPointMallHero h1{margin:8px 0 8px;font-size:30px;line-height:1.18;letter-spacing:-.04em;color:#0f172a}.adminPointMallHero p{margin:0;color:#64748b;font-weight:800;line-height:1.55}.adminPointMallHeroSteps{display:flex;flex-direction:column;gap:9px}.adminPointMallHeroSteps span{display:flex;align-items:center;min-height:42px;border-radius:16px;background:#fff;border:1px solid #e8edf7;padding:0 14px;font-weight:900;color:#334155}.adminPointMallHeroSteps b{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:999px;background:linear-gradient(135deg,#f97316,#7c3aed);color:#fff;font-size:12px}.adminPointMallNotice{margin-bottom:16px}.adminPointMallCard{margin-bottom:16px}.adminPointMallStatGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.adminPointMallStat{border-radius:22px;background:#fff;border:1px solid #e8edf7;box-shadow:0 12px 28px rgba(31,41,71,.06);padding:18px}.adminPointMallStat span{display:block;color:#64748b;font-size:13px;font-weight:800}.adminPointMallStat b{display:block;margin-top:8px;color:#0f172a;font-size:27px;letter-spacing:-.03em}.adminPointMallLayout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:16px;align-items:start}.adminPointMallFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.adminPointMallFormGrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.adminPointMallFormGrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.adminPointMallFormGrid textarea.input,.adminPointMallCard textarea.input{height:auto;min-height:86px;line-height:1.45;padding-top:12px;resize:vertical}.adminPointMallActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;flex-wrap:wrap}.adminPointMallCheck{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:950;color:#334155}.adminPointMallCheck input{width:18px;height:18px}.adminPointMallCategoryList,.adminPointMallProductList{display:grid;gap:12px;margin-top:16px}.adminPointMallCategoryItem{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e7ecf6;border-radius:18px;background:#fff;padding:14px;box-shadow:0 10px 28px rgba(15,23,42,.045)}.adminPointMallCategoryItem.inactive,.adminPointMallProductItem.inactive{opacity:.62}.adminPointMallCategoryItem b{display:block;color:#111827;font-size:16px}.adminPointMallCategoryItem span{display:block;color:#64748b;font-size:13px;font-weight:800;margin-top:4px}.adminPointMallListActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.adminPointMallListActions .btnGhost{height:34px;border-radius:999px;padding:0 12px;font-size:13px;font-weight:900}.adminPointMallBadge{display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;color:#475569;padding:4px 9px;font-size:12px;font-weight:950;font-style:normal;white-space:nowrap}.adminPointMallBadge.on{background:#dcfce7;color:#16a34a}.adminPointMallBadge.off{background:#fee2e2;color:#dc2626}.adminPointMallBadge.warn{background:#fef3c7;color:#b45309}.adminPointMallBadge.rec{background:#f3e8ff;color:#7c3aed}.adminPointMallToggleRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.adminPointMallToggleRow label{display:flex;align-items:center;gap:8px;min-height:46px;border:1px solid #e8edf7;border-radius:16px;background:#f8fafc;padding:0 12px;font-weight:950;color:#334155}.adminPointMallToggleRow input{width:18px;height:18px}.adminPointMallImageBox{border:1px solid #e8edf7;background:#f8fafc;border-radius:22px;padding:14px;margin-top:12px}.adminPointMallImageField small{display:block;margin-top:7px;color:#64748b;font-size:12px;font-weight:800;line-height:1.4}.adminPointMallImagePreviewRow{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:stretch;margin-top:12px}.adminPointMallImagePreview{width:180px;height:136px;border-radius:20px;background:#f1f5f9;border:1px dashed #cbd5e1;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-weight:900}.adminPointMallImagePreview img{width:100%;height:100%;object-fit:cover;display:block}.adminPointMallImageHelp{border:1px solid #e8edf7;border-radius:20px;background:#fff;padding:14px;display:flex;flex-direction:column;gap:7px;min-width:0}.adminPointMallImageHelp b{color:#0f172a;font-size:15px}.adminPointMallImageHelp p{margin:0;color:#64748b;font-size:13px;font-weight:800;line-height:1.45}.adminPointMallImageHelp code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:8px;color:#334155;font-size:12px}.adminPointMallFilters{display:grid;grid-template-columns:210px 180px minmax(0,1fr)120px;gap:10px;align-items:end;margin:12px 0 16px}.adminPointMallProductItem{display:grid;grid-template-columns:126px minmax(0,1fr);gap:14px;border:1px solid #e5e7eb;border-radius:24px;background:#fff;padding:14px;box-shadow:0 12px 30px rgba(15,23,42,.05)}.adminPointMallProductThumb{width:126px;height:126px;border-radius:20px;background:#f1f5f9;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:900}.adminPointMallProductThumb img{width:100%;height:100%;object-fit:cover;display:block}.adminPointMallProductBody{min-width:0;display:flex;flex-direction:column;gap:8px}.adminPointMallProductTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.adminPointMallProductTop b{font-size:20px;color:#111827}.adminPointMallProductMeta{color:#64748b;font-size:13px;font-weight:800}.adminPointMallProductSummary{border-radius:16px;background:#f8fafc;padding:10px 12px;color:#334155;line-height:1.45;white-space:pre-wrap}.adminPointMallEmpty{padding:28px;text-align:center;border:1px dashed #cbd5e1;border-radius:22px;background:#f8fafc;color:#64748b;font-weight:900}@media(max-width:1180px){.adminPointMallHero,.adminPointMallLayout{grid-template-columns:1fr}.adminPointMallStatGrid,.adminPointMallFormGrid.three,.adminPointMallToggleRow{grid-template-columns:repeat(2,minmax(0,1fr))}.adminPointMallFilters{grid-template-columns:1fr 1fr}}@media(max-width:760px){.adminPointMallHero{padding:18px;border-radius:24px}.adminPointMallHero h1{font-size:24px}.adminPointMallStatGrid,.adminPointMallFormGrid,.adminPointMallFormGrid.two,.adminPointMallFormGrid.three,.adminPointMallToggleRow,.adminPointMallFilters{grid-template-columns:1fr}.adminPointMallActions{flex-direction:column}.adminPointMallActions .btnGhost,.adminPointMallActions .btnPrimary{width:100%}.adminPointMallCategoryItem{align-items:flex-start;flex-direction:column}.adminPointMallProductItem{grid-template-columns:1fr}.adminPointMallProductThumb{width:100%;height:190px}.adminPointMallImagePreviewRow{grid-template-columns:1fr}.adminPointMallImagePreview{width:100%;height:190px}}
/* DANGGRAM_POINT_MALL_ADMIN_STEP2_20260525_END */


/* DANGGRAM_POINT_MALL_ADMIN_STEP5_ORDER_20260525_START */
.adminPointMallOrderFilters{grid-template-columns:180px minmax(0,1fr)120px 120px;}
.adminPointMallOrderLayout{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);gap:16px;align-items:start;}
.adminPointMallOrderList{display:flex;flex-direction:column;gap:10px;min-width:0;}
.adminPointMallOrderItem{width:100%;display:grid;grid-template-columns:72px minmax(0,1fr)92px;gap:12px;align-items:center;text-align:left;border:1px solid #e5e7eb;border-radius:22px;background:#fff;padding:12px;cursor:pointer;box-shadow:0 10px 24px rgba(15,23,42,.045);}
.adminPointMallOrderItem.selected{border-color:#7c3aed;box-shadow:0 14px 30px rgba(124,58,237,.12);}
.adminPointMallOrderThumb{width:72px;height:72px;border-radius:18px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#64748b;font-weight:950;}
.adminPointMallOrderThumb.small{width:56px;height:56px;border-radius:15px;}
.adminPointMallOrderThumb img{width:100%;height:100%;object-fit:cover;display:block;}
.adminPointMallOrderMain{min-width:0;display:flex;flex-direction:column;gap:5px;}
.adminPointMallOrderTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.adminPointMallOrderTop b{font-size:15px;color:#0f172a;word-break:break-all;}
.adminPointMallOrderProduct{font-size:15px;font-weight:950;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adminPointMallOrderMeta{font-size:12px;color:#64748b;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adminPointMallOrderPoints{text-align:right;font-weight:950;color:#6f5cff;white-space:nowrap;}
.adminPointMallOrderDetailPanel{position:sticky;top:86px;border:1px solid #e8edf7;border-radius:24px;background:#fff;padding:16px;box-shadow:0 12px 32px rgba(15,23,42,.06);min-width:0;}
.adminPointMallOrderDetailHead{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;}
.adminPointMallOrderDetailHead h3{margin:4px 0 4px;color:#0f172a;font-size:22px;word-break:break-all;}
.adminPointMallOrderDetailHead p{margin:0;color:#64748b;font-weight:800;line-height:1.45;}
.adminPointMallOrderDetailBox{display:flex;flex-direction:column;gap:12px;}
.adminPointMallDetailBlock{border:1px solid #edf1f7;border-radius:20px;background:#fff;padding:14px;}
.adminPointMallDetailBlock h4{margin:0 0 10px;color:#111827;font-size:17px;}
.adminPointMallDetailBlock.danger{background:#fff7f7;border-color:#fecaca;}
.adminPointMallDetailBlock.danger p{margin:0 0 10px;color:#b91c1c;font-weight:800;line-height:1.45;}
.adminPointMallInfoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;}
.adminPointMallInfoGrid>div{border:1px solid #f1f5f9;border-radius:14px;background:#f8fafc;padding:10px;min-width:0;}
.adminPointMallInfoGrid>div.wide{grid-column:1/-1;}
.adminPointMallInfoGrid dt{margin:0 0 4px;color:#64748b;font-size:12px;font-weight:900;}
.adminPointMallInfoGrid dd{margin:0;color:#111827;font-weight:950;line-height:1.4;word-break:break-word;}
.adminPointMallInfoGrid small{color:#64748b;font-weight:800;}
.adminPointMallOrderProductList{display:flex;flex-direction:column;gap:8px;}
.adminPointMallOrderProductRow{display:grid;grid-template-columns:56px minmax(0,1fr)80px;gap:10px;align-items:center;border-bottom:1px solid #f1f5f9;padding:8px 0;}
.adminPointMallOrderProductRow:last-child{border-bottom:0;}
.adminPointMallOrderProductRow b{color:#111827;}
.adminPointMallOrderProductRow p{margin:3px 0 0;color:#64748b;font-size:12px;font-weight:800;}
.adminPointMallOrderProductRow strong{text-align:right;color:#6f5cff;}
.adminPointMallOrderLogs{display:flex;flex-direction:column;gap:8px;}
.adminPointMallOrderLogs>div{border:1px solid #f1f5f9;background:#f8fafc;border-radius:14px;padding:10px;}
.adminPointMallOrderLogs span{display:block;color:#64748b;font-size:12px;font-weight:800;}
.adminPointMallOrderLogs b{display:block;margin-top:2px;color:#111827;}
.adminPointMallOrderLogs p{margin:4px 0 0;color:#475569;font-size:13px;line-height:1.4;}
.btnDanger{min-height:42px;border:0;border-radius:14px;background:#ef4444;color:#fff;font-weight:950;padding:0 16px;cursor:pointer;}
.btnDanger:disabled,.btnGhost:disabled,.btnPrimary:disabled{opacity:.5;cursor:not-allowed;}
@media(max-width:1180px){.adminPointMallOrderLayout{grid-template-columns:1fr}.adminPointMallOrderDetailPanel{position:static}.adminPointMallOrderFilters{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.adminPointMallOrderFilters{grid-template-columns:1fr}.adminPointMallOrderItem{grid-template-columns:62px minmax(0,1fr)}.adminPointMallOrderPoints{grid-column:2;text-align:left}.adminPointMallOrderThumb{width:62px;height:62px}.adminPointMallInfoGrid{grid-template-columns:1fr}.adminPointMallOrderProductRow{grid-template-columns:52px minmax(0,1fr)}.adminPointMallOrderProductRow strong{grid-column:2;text-align:left}.adminPointMallOrderDetailPanel{padding:12px;border-radius:20px}}
/* DANGGRAM_POINT_MALL_ADMIN_STEP5_ORDER_20260525_END */

/* POINT_MALL_STEP5_1_SHIPPING_STATUS_FIX_START */
.adminPointMallInputHint{display:block;margin-top:7px;color:#64748b;font-size:12px;font-weight:800;line-height:1.45;}
.adminPointMallStatusActions{align-items:stretch;gap:10px;flex-wrap:wrap;}
.adminPointMallStatusActions .adminPointMallStatusBtn{min-width:118px;height:44px;border-radius:14px;font-weight:950;}
.adminPointMallStatusActions .adminPointMallStatusBtn.isCurrent{position:relative;border-color:#7c3aed;background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;box-shadow:0 12px 26px rgba(124,58,237,.22);}
.adminPointMallStatusActions .adminPointMallStatusBtn.isCurrent::after{content:'현재';display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.22);font-size:11px;font-weight:950;line-height:1;vertical-align:middle;}
@media(max-width:760px){.adminPointMallStatusActions{display:grid;grid-template-columns:1fr 1fr}.adminPointMallStatusActions .adminPointMallStatusBtn{width:100%;min-width:0}.adminPointMallStatusActions #btnSaveOrderShipping{grid-column:1/-1}}
/* POINT_MALL_STEP5_1_SHIPPING_STATUS_FIX_END */


/* DANGGRAM_KOLS_TRANSFER_ADMIN_STEP2_20260528_START */
.adminKolsPage{
  display:grid;
  gap:14px;
}
.adminKolsHero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border:1px solid rgba(124,58,237,.22);
  border-radius:22px;
  background:linear-gradient(135deg, rgba(237,233,254,.82), rgba(255,255,255,.96));
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.adminKolsEyebrow{
  font-size:12px;
  font-weight:900;
  color:#6d28d9;
  margin-bottom:6px;
}
.adminKolsHero h1{
  margin:0;
  font-size:24px;
  letter-spacing:-.04em;
  color:#0f172a;
}
.adminKolsHero p{
  margin:7px 0 0;
  color:rgba(15,23,42,.64);
  line-height:1.6;
  font-size:14px;
}
.adminKolsHeroSteps{
  min-width:220px;
  display:grid;
  gap:8px;
}
.adminKolsHeroSteps span{
  display:block;
  padding:9px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(148,163,184,.25);
  color:#334155;
  font-size:12px;
  font-weight:800;
}
.adminKolsNotice{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:13px 15px;
  border-radius:18px;
  border:1px solid rgba(245,158,11,.25);
  background:rgba(255,251,235,.82);
  color:#78350f;
}
.adminKolsNotice b{
  flex:0 0 auto;
  font-size:13px;
}
.adminKolsNotice span{
  font-size:13px;
  line-height:1.55;
}
.adminKolsSummaryGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.adminKolsMetric{
  padding:14px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:18px;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.adminKolsMetric span{
  display:block;
  font-size:12px;
  font-weight:900;
  color:rgba(15,23,42,.56);
}
.adminKolsMetric b{
  display:block;
  margin-top:6px;
  font-size:24px;
  color:#0f172a;
  letter-spacing:-.04em;
}
.adminKolsMetric em{
  display:block;
  margin-top:4px;
  font-style:normal;
  color:rgba(15,23,42,.54);
  font-size:12px;
}
.adminKolsMetric.good{
  border-color:rgba(16,185,129,.28);
  background:rgba(236,253,245,.75);
}
.adminKolsMetric.danger{
  border-color:rgba(239,68,68,.28);
  background:rgba(254,242,242,.82);
}
.adminKolsCard{
  padding:14px;
  border-radius:20px;
}
.adminKolsCardHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.adminKolsStatus{
  flex:0 0 auto;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.3);
  background:rgba(248,250,252,.9);
  color:#334155;
  font-size:12px;
  font-weight:900;
}
.adminKolsStatus.ok{
  border-color:rgba(16,185,129,.3);
  background:rgba(236,253,245,.82);
  color:#047857;
}
.adminKolsStatus.warn{
  border-color:rgba(245,158,11,.32);
  background:rgba(255,251,235,.9);
  color:#92400e;
}
.adminKolsStatus.error{
  border-color:rgba(239,68,68,.32);
  background:rgba(254,242,242,.9);
  color:#b91c1c;
}
.adminKolsSearchGrid{
  display:grid;
  grid-template-columns:minmax(240px,1fr) 190px 140px 120px;
  gap:10px;
  align-items:end;
}
.adminKolsSearchMain{
  min-width:0;
}
.adminKolsSearchButton{
  height:42px;
}
.adminKolsMessage{
  margin-top:10px;
  min-height:20px;
  font-size:13px;
  color:rgba(15,23,42,.6);
}
.adminKolsMessage.ok{color:#047857;font-weight:800;}
.adminKolsMessage.error{color:#b91c1c;font-weight:800;}
.adminKolsMessage.loading{color:#4f46e5;font-weight:800;}
.adminKolsGuideBox{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:12px 0;
  padding:11px 12px;
  border:1px solid rgba(59,130,246,.22);
  border-radius:16px;
  background:rgba(239,246,255,.78);
}
.adminKolsGuideBox b{
  flex:0 0 auto;
  font-size:13px;
  color:#1d4ed8;
}
.adminKolsGuideBox span{
  font-size:13px;
  color:rgba(15,23,42,.68);
  line-height:1.55;
}
.adminKolsTableWrap{
  width:100%;
  overflow:auto;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:#fff;
}
.adminKolsTable{
  width:100%;
  min-width:1180px;
  border-collapse:separate;
  border-spacing:0;
}
.adminKolsTable th,
.adminKolsTable td{
  padding:11px 10px;
  border-bottom:1px solid rgba(148,163,184,.18);
  vertical-align:top;
  text-align:left;
  font-size:13px;
}
.adminKolsTable th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  font-weight:900;
}
.adminKolsTable tr.needAttention td{
  background:rgba(255,247,237,.52);
}
.adminKolsTable td b{
  display:block;
  color:#0f172a;
}
.adminKolsTable td span,
.adminKolsTable td em{
  display:block;
  margin-top:4px;
  color:rgba(15,23,42,.58);
  font-size:12px;
  line-height:1.35;
  font-style:normal;
  word-break:break-all;
}
.adminKolsUserCell{
  min-width:190px;
}
.adminKolsBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.3);
  background:rgba(248,250,252,.92);
  color:#334155;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.adminKolsBadge.good{
  border-color:rgba(16,185,129,.3);
  background:rgba(236,253,245,.9);
  color:#047857;
}
.adminKolsBadge.info{
  border-color:rgba(59,130,246,.3);
  background:rgba(239,246,255,.9);
  color:#1d4ed8;
}
.adminKolsBadge.warn{
  border-color:rgba(245,158,11,.32);
  background:rgba(255,251,235,.9);
  color:#92400e;
}
.adminKolsBadge.danger{
  border-color:rgba(239,68,68,.32);
  background:rgba(254,242,242,.9);
  color:#b91c1c;
}
.adminKolsSmallBtn{
  min-width:72px;
  height:34px;
  padding:0 10px;
  font-size:12px;
}
.adminKolsEmptyCell{
  padding:22px !important;
  text-align:center !important;
  color:rgba(15,23,42,.56);
  background:#fff !important;
}
@media (max-width: 900px){
  .adminKolsHero{
    flex-direction:column;
  }
  .adminKolsHeroSteps{
    width:100%;
    min-width:0;
  }
  .adminKolsSummaryGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .adminKolsSearchGrid{
    grid-template-columns:1fr 1fr;
  }
  .adminKolsSearchButton{
    grid-column:1 / -1;
  }
}
@media (max-width: 560px){
  .adminKolsSummaryGrid,
  .adminKolsSearchGrid{
    grid-template-columns:1fr;
  }
  .adminKolsCardHead,
  .adminKolsNotice,
  .adminKolsGuideBox{
    flex-direction:column;
  }
}
/* DANGGRAM_KOLS_TRANSFER_ADMIN_STEP2_20260528_END */

/* DANGGRAM_REGION_ADMIN_SCOPE_STEP3_20260529_START */
.adminLostDogsFilterHead{flex-wrap:wrap;}
.adminLostCountryFilterField,.adminLostCountryCodeField{min-width:180px;margin:0;}
@media(max-width:860px){
  .adminLostCountryFilterField,.adminLostCountryCodeField{width:100%;min-width:0;}
}
/* DANGGRAM_REGION_ADMIN_SCOPE_STEP3_20260529_END */


/* DANGGRAM_REGION_OPS_STEP9_20260529_START */
.adminRegionScopeCard{
  border-color:rgba(37,99,235,.18);
}
.adminRegionScopeNotice{
  margin-bottom:14px;
}
.adminRegionScopeGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:12px 0 16px;
}
.adminRegionScopeMiniCard{
  border:1px solid rgba(148,163,184,.25);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.92));
  padding:14px;
  box-shadow:0 10px 26px rgba(15,23,42,.06);
}
.adminRegionScopeMiniCard.kr{
  border-color:rgba(59,130,246,.24);
}
.adminRegionScopeMiniCard.global{
  border-color:rgba(99,102,241,.22);
}
.adminRegionScopeMiniHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.adminRegionScopeMiniHead b{
  font-size:18px;
  color:#0f172a;
}
.adminRegionScopeMiniHead span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  height:28px;
  border-radius:999px;
  background:rgba(37,99,235,.09);
  color:#1d4ed8;
  font-size:12px;
  font-weight:900;
}
.adminRegionScopeMiniCard dl{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0;
}
.adminRegionScopeMiniCard dl div{
  min-width:0;
  padding:9px 10px;
  border-radius:14px;
  background:rgba(241,245,249,.72);
}
.adminRegionScopeMiniCard dt{
  margin:0 0 4px;
  color:rgba(15,23,42,.52);
  font-size:12px;
  font-weight:900;
}
.adminRegionScopeMiniCard dd{
  margin:0;
  color:#0f172a;
  font-size:13px;
  font-weight:800;
  line-height:1.35;
  word-break:keep-all;
}
.adminRegionScopeTableWrap{
  overflow:auto;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:#fff;
}
.adminRegionScopeTable{
  width:100%;
  min-width:920px;
  border-collapse:separate;
  border-spacing:0;
}
.adminRegionScopeTable th,
.adminRegionScopeTable td{
  padding:12px 11px;
  border-bottom:1px solid rgba(148,163,184,.18);
  text-align:left;
  vertical-align:top;
  font-size:13px;
}
.adminRegionScopeTable th{
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  font-weight:900;
}
.adminRegionScopeTable td b,
.adminRegionScopeTable td span{
  display:block;
}
.adminRegionScopeTable td span{
  margin-top:4px;
  color:rgba(15,23,42,.55);
  font-size:12px;
}
.adminRegionScopeSummary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.adminRegionScopeSummaryCard{
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:#fff;
  padding:13px;
}
.adminRegionScopeSummaryCard h3{
  margin:0 0 10px;
  font-size:14px;
  color:#0f172a;
}
.adminRegionScopeSummaryRow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 8px;
  align-items:center;
  padding:8px 0;
  border-top:1px solid rgba(148,163,184,.16);
}
.adminRegionScopeSummaryRow:first-of-type{
  border-top:0;
}
.adminRegionScopeSummaryRow b{
  color:#0f172a;
  font-size:13px;
}
.adminRegionScopeSummaryRow span{
  grid-column:1;
  color:rgba(15,23,42,.52);
  font-size:12px;
}
.adminRegionScopeSummaryRow em{
  grid-row:1 / span 2;
  grid-column:2;
  font-style:normal;
  color:#1d4ed8;
  font-size:13px;
  font-weight:900;
}
.adminRegionScopeEmpty{
  padding:18px;
  border:1px dashed rgba(148,163,184,.35);
  border-radius:16px;
  color:rgba(15,23,42,.55);
  background:rgba(248,250,252,.72);
  text-align:center;
  font-size:13px;
}
@media(max-width:900px){
  .adminRegionScopeGrid,
  .adminRegionScopeSummary{
    grid-template-columns:1fr;
  }
}
@media(max-width:560px){
  .adminRegionScopeMiniCard dl{
    grid-template-columns:1fr;
  }
}
/* DANGGRAM_REGION_OPS_STEP9_20260529_END */

/* DANGGRAM_GLOBAL_COIN_POINT_MALL_20260601_START */
.adminPointMallToggleRow{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0;}
.adminPointMallPreviewRow{margin:8px 0 12px;display:flex;gap:10px;align-items:center;}
.adminPointMallImagePreview{width:86px;height:86px;border-radius:20px;background:#f8fafc;border:1px solid #e5e7eb;display:grid;place-items:center;overflow:hidden;color:#94a3b8;font-size:12px;font-weight:900;}
.adminPointMallImagePreview img{width:100%;height:100%;object-fit:cover;display:block;}
.breakAll{word-break:break-all;}
#globalCoinMallCard,#globalCoinOrderCard{border-color:rgba(109,94,252,.18);}
#globalCoinOrderCard .adminPointMallOrderPoints{min-width:120px;text-align:right;word-break:break-all;}
@media(max-width:760px){.adminPointMallToggleRow{flex-direction:column}.adminPointMallPreviewRow{justify-content:center}}
/* DANGGRAM_GLOBAL_COIN_POINT_MALL_20260601_END */

/* DANGGRAM_GLOBAL_COIN_TX_VERIFY_LOCK_20260601_START */
#globalCoinOrderCard .adminPointMallOrderItem{grid-template-columns:minmax(0,1fr) minmax(126px,170px);}
#globalCoinOrderCard .adminPointMallOrderPoints{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0;text-align:right;white-space:normal;}
#globalCoinOrderCard .adminPointMallOrderPoints span{display:inline-flex;width:max-content;max-width:100%;padding:4px 8px;border-radius:999px;background:#f3efff;color:#6f5cff;font-size:11px;font-weight:950;}
#globalCoinOrderCard .adminPointMallOrderPoints strong{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;line-height:1.35;color:#6f5cff;font-size:13px;}
#globalCoinOrderCard .breakAll{overflow-wrap:anywhere;word-break:break-word;}
#globalCoinOrderCard .adminPointMallWarningText{margin:0 0 12px;padding:12px 14px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa;color:#b45309;font-weight:900;line-height:1.5;}
#globalCoinOrderCard .adminPointMallTxPendingNotice{margin-top:12px;padding:12px 14px;border-radius:16px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-weight:950;line-height:1.5;}
#globalCoinOrderCard .coinTransferActions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:stretch;}
#globalCoinOrderCard .coinTransferActions button{width:100%;min-width:0;min-height:44px;padding:0 10px;white-space:normal;line-height:1.2;text-align:center;font-size:13px;font-weight:950;}
#globalCoinOrderCard .coinTransferActions .verify{background:linear-gradient(135deg,#10b981,#2563eb);border-color:transparent;color:#fff;}
.adminCoinTransferOverlay{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(15,23,42,.66);backdrop-filter:blur(3px);}
.adminCoinTransferPanel{width:min(420px,calc(100vw - 34px));padding:28px 24px;border-radius:28px;background:#fff;box-shadow:0 26px 90px rgba(15,23,42,.28);text-align:center;border:1px solid rgba(255,255,255,.68);}
.adminCoinTransferPanel img{display:block;width:88px;height:88px;object-fit:contain;margin:0 auto 14px;}
.adminCoinTransferPanel strong{display:block;color:#111827;font-size:22px;font-weight:950;letter-spacing:-.03em;}
.adminCoinTransferPanel p{margin:10px 0 0;color:#334155;font-size:15px;font-weight:900;line-height:1.55;}
.adminCoinTransferPanel small{display:block;margin-top:12px;color:#dc2626;font-size:12px;font-weight:950;line-height:1.45;}
body.adminCoinTransferLocked{overflow:hidden;}
body.adminCoinTransferLocked #globalCoinOrderCard{pointer-events:none;user-select:none;}
body.adminCoinTransferLocked .adminCoinTransferOverlay{pointer-events:auto;}
@media(max-width:1180px){#globalCoinOrderCard .coinTransferActions{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){#globalCoinOrderCard .adminPointMallOrderItem{grid-template-columns:1fr;}#globalCoinOrderCard .adminPointMallOrderPoints{align-items:flex-start;text-align:left;}#globalCoinOrderCard .coinTransferActions{grid-template-columns:1fr 1fr;}#globalCoinOrderCard .coinTransferActions button{font-size:12px;}#globalCoinOrderCard .coinTransferActions #btnCoinOrderVerifyTx{grid-column:1/-1;}}
/* DANGGRAM_GLOBAL_COIN_TX_VERIFY_LOCK_20260601_END */
