/* 관리자 공용: 왼쪽 트리 메뉴 + 콘텐츠 영역 */
.admin-shell { display: flex; min-height: 100vh; }
.admin-nav { width: 232px; flex: none; background: #1c1917; color: #e7e5e4; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; transition: width .15s; }
.admin-nav.collapsed { width: 48px; }
.admin-nav.collapsed .nav-tree, .admin-nav.collapsed .nav-foot, .admin-nav.collapsed .admin-brand a { display: none; }
.admin-brand { display: flex; align-items: center; justify-content: space-between; padding: 14px 12px 10px 16px; border-bottom: 1px solid #292524; }
.admin-brand a { color: #fff; text-decoration: none; font-weight: 700; font-size: 15px; }
.nav-toggle { background: none; border: 1px solid #44403c; color: #d6d3d1; border-radius: 6px; width: 28px; height: 28px; cursor: pointer; }
.nav-tree { padding: 8px 8px 8px 8px; font-size: 14px; }
.nav-tree details { margin-bottom: 4px; }
.nav-tree summary { cursor: pointer; list-style: none; padding: 6px 8px; color: #a8a29e; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; user-select: none; }
.nav-tree summary::-webkit-details-marker { display: none; }
.nav-tree summary::before { content: '▾'; display: inline-block; width: 14px; transition: transform .15s; }
.nav-tree details:not([open]) summary::before { transform: rotate(-90deg); }
.nav-tree ul { list-style: none; margin: 0; padding: 0 0 0 10px; }
.nav-tree ul ul { padding-left: 14px; }
.nav-tree a { display: block; padding: 6px 10px; margin: 1px 0; color: #e7e5e4; text-decoration: none; border-radius: 6px; border-left: 2px solid transparent; }
.nav-tree a:hover { background: #292524; }
.nav-tree a.active { background: #1e3a8a; color: #fff; border-left-color: #93c5fd; }
.nav-tree a.sub { color: #a8a29e; font-size: 13px; }
.nav-foot { margin-top: auto; padding: 12px 16px; font-size: 11px; color: #78716c; border-top: 1px solid #292524; line-height: 1.6; }
.nav-foot code { color: #a8a29e; }
.admin-content { flex: 1; min-width: 0; }
.admin-content .topbar { position: sticky; top: 0; z-index: 5; }
.admin-content .topbar .topnav { display: none; }   /* 상단 링크는 트리 메뉴로 대체 */
@media (max-width: 900px) {
  .admin-shell { flex-direction: column; }
  .admin-nav { width: 100%; height: auto; position: static; }
  .admin-nav.collapsed { width: 100%; }
  .admin-nav.collapsed .admin-brand a { display: inline; }
  .nav-tree { display: flex; flex-wrap: wrap; gap: 4px; }
  .nav-tree details { min-width: 140px; }
}
