:root {
  --admin-bg: #09060d;
  --admin-panel: rgba(24, 17, 29, 0.94);
  --admin-panel-soft: rgba(35, 25, 42, 0.72);
  --admin-border: rgba(232, 195, 106, 0.22);
  --admin-gold: #e8c36a;
  --admin-ink: #f8edda;
  --admin-muted: #aa9c91;
  --admin-green: #7bd9a7;
  --admin-danger: #ff9a9a;
}

.admin-body {
  min-height: 100vh;
  margin: 0;
  color: var(--admin-ink);
  background: radial-gradient(circle at 85% 0%, #39224b 0, transparent 30rem), var(--admin-bg);
  word-break: keep-all;
}

.admin-body[aria-busy="true"] { cursor: progress; }
.admin-body input,
.admin-body select,
.admin-body textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 46px;
  margin-top: 0.45rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--admin-border);
  border-radius: 0.75rem;
  color: var(--admin-ink);
  background: #100b14;
}
.admin-body textarea { min-height: 7rem; resize: vertical; }
.admin-body button:focus-visible,
.admin-body a:focus-visible,
.admin-body input:focus-visible,
.admin-body select:focus-visible,
.admin-body textarea:focus-visible { outline: 2px solid #fff0a6; outline-offset: 3px; }

.admin-login { display: grid; min-height: 100vh; place-items: center; padding: 1rem; }
.admin-login__card {
  width: min(100%, 28rem);
  padding: clamp(1.5rem, 6vw, 2.5rem);
  border: 1px solid var(--admin-border);
  border-radius: 1.5rem;
  background: linear-gradient(145deg, rgba(46, 30, 55, 0.96), rgba(12, 8, 15, 0.98));
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55);
}
.admin-login__card h1 { margin: 0.35rem 0 0.6rem; font-family: "Noto Serif KR", serif; font-size: 2rem; }
.admin-login__card > p:not(.admin-kicker) { color: var(--admin-muted); }
.admin-login__card label { display: block; margin-top: 1rem; font-size: 0.88rem; font-weight: 700; }
.admin-back { color: var(--admin-muted); font-size: 0.82rem; }
.admin-kicker { margin: 0; color: var(--admin-gold); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.18em; }

.admin-button {
  min-height: 46px;
  padding: 0.7rem 1rem;
  border: 1px solid var(--admin-border);
  border-radius: 0.75rem;
  color: var(--admin-ink);
  background: #21172a;
  font-weight: 800;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}
.admin-body button:active {
  border-color: #fff0a6;
  box-shadow: 0 0 0 2px rgba(255, 240, 166, 0.92), 0 0 22px rgba(232, 195, 106, 0.72);
  transform: translateY(1px);
}
.admin-button--gold { color: #181008; background: linear-gradient(135deg, #fff1af, #c99735); box-shadow: 0 8px 24px rgba(201, 151, 53, 0.2); }
.admin-login__card .admin-button { width: 100%; margin-top: 1.25rem; }
.admin-status { min-height: 1.4rem; margin: 0.75rem 0; color: var(--admin-muted); font-size: 0.82rem; }
.admin-status[data-state="error"] { color: var(--admin-danger); }
.admin-status[data-state="success"] { color: var(--admin-green); }

.admin-app { min-height: 100vh; }
.admin-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 40;
  display: flex;
  width: 16rem;
  flex-direction: column;
  padding: 1.4rem 1rem;
  border-right: 1px solid var(--admin-border);
  background: rgba(10, 7, 13, 0.96);
  backdrop-filter: blur(16px);
}
.admin-logo { display: grid; grid-template-columns: 2rem 1fr; align-items: center; padding: 0.7rem; color: var(--admin-ink); }
.admin-logo > span { grid-row: 1 / 3; color: var(--admin-gold); font-size: 1.6rem; }
.admin-logo small { color: var(--admin-muted); font-size: 0.58rem; letter-spacing: 0.2em; }
.admin-tabs { display: grid; gap: 0.45rem; margin-top: 2rem; }
.admin-tabs button { min-height: 46px; padding: 0 1rem; border-radius: 0.75rem; color: var(--admin-muted); text-align: left; }
.admin-tabs button[aria-selected="true"] {
  border-color: #fff0a6;
  color: #1b1208;
  background: linear-gradient(135deg, #f2d990, #b98631);
  box-shadow: 0 0 0 2px rgba(255, 240, 166, 0.92), 0 0 22px rgba(232, 195, 106, 0.72);
  font-weight: 900;
}
.admin-sidebar__foot { display: grid; gap: 0.75rem; margin-top: auto; padding: 0.7rem; }
.admin-sidebar__foot button { color: var(--admin-muted); text-align: left; }
.admin-badge { width: fit-content; padding: 0.28rem 0.55rem; border: 1px solid rgba(123, 217, 167, 0.3); border-radius: 999px; color: var(--admin-green); background: rgba(123, 217, 167, 0.08); font-size: 0.7rem; }

.admin-main { min-width: 0; margin-left: 16rem; padding: 2rem clamp(1.25rem, 4vw, 3rem) 5rem; }
.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.admin-header h1 { margin: 0.15rem 0 0; font-family: "Noto Serif KR", serif; font-size: clamp(1.7rem, 4vw, 2.5rem); }
.admin-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.admin-header__actions button { min-height: 42px; padding: 0 0.9rem; border: 1px solid var(--admin-border); border-radius: 0.7rem; }
.admin-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.admin-metrics article,
.admin-card { border: 1px solid var(--admin-border); border-radius: 1rem; background: var(--admin-panel); box-shadow: 0 18px 50px rgba(0, 0, 0, 0.2); }
.admin-metrics article { display: grid; min-height: 9rem; align-content: space-between; padding: 1.2rem; }
.admin-metrics span { color: var(--admin-muted); font-size: 0.82rem; }
.admin-metrics strong { color: var(--admin-gold); font-size: 2.15rem; }
.admin-metrics small { color: #7f746d; font-size: 0.68rem; }
.admin-grid { display: grid; gap: 1rem; }
.admin-grid--summary { grid-template-columns: 1.2fr 1fr; margin-top: 1rem; }
.admin-card { margin-bottom: 1rem; padding: 1.25rem; }
.admin-card h2,
.admin-card h3 { margin: 0.3rem 0 0.8rem; }
.admin-card p,
.admin-card li { color: var(--admin-muted); font-size: 0.86rem; line-height: 1.7; }
.admin-callout { margin-top: 1rem; padding: 0.9rem; border-radius: 0.75rem; background: var(--admin-panel-soft); }
.admin-callout strong { color: var(--admin-gold); }
.admin-section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.5rem 0 1rem; }
.admin-section-head h2 { margin: 0.25rem 0 0; font-family: "Noto Serif KR", serif; font-size: 1.8rem; }
.admin-section-head > p { max-width: 34rem; color: var(--admin-muted); font-size: 0.82rem; text-align: right; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-form-grid label { color: var(--admin-muted); font-size: 0.78rem; font-weight: 700; }
.admin-form-action { display: flex; align-items: end; }
.admin-consent { grid-column: 1 / -1; display: flex; align-items: center; gap: 0.65rem; }
.admin-consent input { width: 1.1rem; min-height: 1.1rem; margin: 0; }
.admin-sticky-actions { position: sticky; top: 0; z-index: 10; display: flex; justify-content: end; gap: 0.6rem; margin: -1.25rem -1.25rem 1rem; padding: 0.8rem 1.25rem; border-bottom: 1px solid var(--admin-border); background: rgba(24, 17, 29, 0.96); }
.admin-content-preview { margin-bottom: 1rem; padding: 1rem; border: 1px dashed var(--admin-border); border-radius: 0.75rem; white-space: pre-line; }
.admin-content-preview strong { display: block; color: var(--admin-gold); font-family: "Noto Serif KR", serif; font-size: 1.4rem; }
.admin-content-preview span { color: var(--admin-muted); }

.admin-table-wrap { overflow-x: auto; }
.admin-table-wrap table { width: 100%; min-width: 42rem; border-collapse: collapse; text-align: left; }
.admin-table-wrap th { padding: 0.8rem; border-bottom: 1px solid var(--admin-border); color: var(--admin-muted); font-size: 0.72rem; }
.admin-table-wrap td { padding: 0.85rem; border-bottom: 1px solid rgba(232, 195, 106, 0.1); font-size: 0.8rem; }
.admin-table-wrap td button { min-height: 40px; padding: 0 0.65rem; border: 1px solid var(--admin-border); border-radius: 0.55rem; }
.admin-empty { color: var(--admin-muted); text-align: center; }

@media (max-width: 900px) {
  .admin-sidebar { position: sticky; inset: 0; width: auto; height: auto; padding: 0.7rem 0.85rem; border: 0; border-bottom: 1px solid var(--admin-border); }
  .admin-logo { display: none; }
  .admin-tabs { display: flex; margin: 0; overflow-x: auto; }
  .admin-tabs button { flex: 0 0 auto; padding: 0 0.9rem; }
  .admin-sidebar__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 0.5rem; padding: 0 0.2rem; }
  .admin-sidebar__foot button { min-height: 40px; padding: 0 0.8rem; border: 1px solid var(--admin-border); border-radius: 0.65rem; }
  .admin-main { margin: 0; padding: 1.2rem 0.85rem 5rem; }
  .admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-grid--summary { grid-template-columns: 1fr; }
  .admin-sticky-actions { top: 7rem; }
}

@media (max-width: 520px) {
  .admin-header { align-items: start; }
  .admin-header__actions { align-items: end; flex-direction: column-reverse; }
  .admin-metrics { gap: 0.65rem; }
  .admin-metrics article { min-height: 7.6rem; padding: 0.9rem; }
  .admin-metrics strong { font-size: 1.7rem; }
  .admin-section-head { display: block; }
  .admin-section-head > p { margin-top: 0.5rem; text-align: left; }
  .admin-form-grid { grid-template-columns: 1fr; }
  .admin-consent { grid-column: auto; }
  .admin-sticky-actions { justify-content: stretch; }
  .admin-sticky-actions .admin-button { flex: 1; }
}

@media (forced-colors: active) {
  .admin-card, .admin-metrics article, .admin-login__card, .admin-button { border: 2px solid ButtonText; }
}
