/* 멍메이트 관리자 테마 — 에스프레소 + 허니 */
:root {
  --paper: #FAF7F2;
  --ink: #2E2620;
  --muted: #8A7B6C;
  --espresso: #2B211A;
  --espresso-2: #3A2D24;
  --honey: #E9A13B;
  --honey-deep: #CE8B25;
  --honey-soft: #F7ECDD;
  --line: #EAE2D6;
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: "Pretendard Variable", Pretendard, -apple-system, "Malgun Gothic", sans-serif;
}

/* ── 사이드바 ── */
.sidebar { width: 232px; min-height: 100vh; background: var(--espresso); }
.sidebar .brand {
  display: flex; align-items: center; gap: .65rem;
  color: #fff; text-decoration: none; margin-bottom: 1.75rem;
}
.sidebar .brand .logo {
  width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
  background: var(--honey); display: grid; place-items: center; font-size: 1.3rem;
}
.sidebar .brand strong { font-size: 1.02rem; letter-spacing: -.01em; }
.sidebar .brand small { display: block; color: #A8988A; font-weight: 500; font-size: .72rem; }
.sidebar .nav-link {
  display: flex; align-items: center; gap: .6rem;
  color: #C9BBAC; font-weight: 500; font-size: .92rem;
  border-radius: 10px; padding: .55rem .8rem; transition: background .15s, color .15s;
}
.sidebar .nav-link:hover { background: var(--espresso-2); color: #fff; }
.sidebar .nav-link.active { background: var(--honey); color: var(--espresso); font-weight: 700; }
.menu-badge {
  margin-left: auto; background: var(--honey); color: var(--espresso);
  border-radius: 999px; font-size: .72rem; font-weight: 700; padding: .12rem .5rem;
}
.sidebar .nav-link.active .menu-badge { background: var(--espresso); color: var(--honey); }

/* ── 상단 바 ── */
.page-title { font-weight: 800; letter-spacing: -.02em; }
.admin-chip {
  display: inline-flex; align-items: center; gap: .45rem;
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: .3rem .5rem .3rem .9rem; font-size: .88rem; font-weight: 600;
}

/* ── 카드 / 테이블 ── */
.card {
  border: 1px solid var(--line); border-radius: 14px; overflow: hidden;
  box-shadow: 0 1px 2px rgba(43, 33, 26, .05);
}
.card-header {
  background: #fff; border-bottom: 1px solid var(--line);
  font-weight: 700; font-size: .88rem; color: var(--ink); padding: .8rem 1rem;
}
.table { --bs-table-hover-bg: #FBF4E8; margin-bottom: 0; }
.table thead th {
  font-size: .73rem; text-transform: uppercase; letter-spacing: .05em;
  color: var(--muted); font-weight: 700; border-bottom: 1px solid var(--line);
  background: #FDFBF8; padding: .65rem .75rem;
}
.table td { padding: .65rem .75rem; border-color: #F3EDE3; }

/* 대시보드 스탯 카드 */
.stat-card .stat-label { color: var(--muted); font-size: .82rem; font-weight: 600; }
.stat-card .stat-value {
  font-size: 2rem; font-weight: 800; letter-spacing: -.02em;
  font-feature-settings: "tnum"; font-variant-numeric: tabular-nums;
}
.stat-alert { border-left: 4px solid var(--honey); }
.stat-alert .stat-value { color: var(--honey-deep); }

/* ── 버튼 / 뱃지 / 폼 ── */
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary {
  --bs-btn-bg: var(--honey); --bs-btn-border-color: var(--honey); --bs-btn-color: #2B211A;
  --bs-btn-hover-bg: var(--honey-deep); --bs-btn-hover-border-color: var(--honey-deep);
  --bs-btn-hover-color: #2B211A; --bs-btn-active-bg: var(--honey-deep);
  --bs-btn-active-border-color: var(--honey-deep); --bs-btn-active-color: #2B211A;
}
.btn-outline-primary {
  --bs-btn-color: var(--honey-deep); --bs-btn-border-color: var(--honey);
  --bs-btn-hover-bg: var(--honey); --bs-btn-hover-border-color: var(--honey);
  --bs-btn-hover-color: #2B211A; --bs-btn-active-bg: var(--honey);
  --bs-btn-active-border-color: var(--honey); --bs-btn-active-color: #2B211A;
}
.badge { border-radius: 999px; font-weight: 600; padding: .35em .7em; }
.form-control, .form-select { border-radius: 10px; border-color: var(--line); }
.form-control:focus, .form-select:focus {
  border-color: var(--honey); box-shadow: 0 0 0 .2rem rgba(233, 161, 59, .2);
}
a { color: var(--honey-deep); }
:focus-visible { outline: 2px solid var(--honey); outline-offset: 2px; }

.alert { border-radius: 12px; }
.modal-content { border-radius: 14px; border: 1px solid var(--line); }
.pagination { margin-top: 1rem; }
.page-link { color: var(--honey-deep); border-color: var(--line); }
.page-item.active .page-link {
  background: var(--honey); border-color: var(--honey); color: var(--espresso); font-weight: 700;
}

/* ── AG Grid 테마 ── */
.ag-theme-quartz {
  --ag-font-family: inherit;
  --ag-accent-color: var(--honey-deep);
  --ag-border-color: var(--line);
  --ag-header-background-color: #FDFBF8;
  --ag-header-foreground-color: var(--muted);
  --ag-foreground-color: var(--ink);
  --ag-row-hover-color: #FBF4E8;
  --ag-selected-row-background-color: var(--honey-soft);
  --ag-wrapper-border-radius: 14px;
  --ag-background-color: #fff;
}
.ag-theme-quartz .ag-header-cell-label { font-size: .78rem; font-weight: 700; }

/* ── 로그인 ── */
.login-body { background: var(--paper); min-height: 100vh; display: flex; align-items: center; }
.login-card { max-width: 384px; margin: 0 auto; }
.login-logo {
  width: 64px; height: 64px; border-radius: 18px; background: var(--honey);
  display: grid; place-items: center; font-size: 2rem; margin: 0 auto 1rem;
}

/* ── 모바일 ── */
@media (max-width: 768px) {
  .layout { flex-direction: column; }
  .sidebar { width: 100%; min-height: auto; }
  .sidebar ul { flex-direction: row !important; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
