/* ============================================
   다채움 GNB - 네이버 스타일 2단 네비게이션
   1단: 로고 + 1차 메뉴 + 사용자
   2단: 선택 서비스의 2차 메뉴 (파란 배경)
   ============================================ */
@import url('https://cdnjs.cloudflare.com/ajax/libs/pretendard/1.3.9/static/pretendard.min.css');
@import url('/dacheum-common.css');
:root {
  --gnb-primary: #2563eb;
  --gnb-bg: #ffffff;
  --gnb-text: #1f2937;
  --gnb-text-muted: #9ca3af;
  --gnb-border: #e5e7eb;
  --gnb-hover-bg: #f3f4f6;
  --gnb-active-bg: #eff6ff;
  --gnb-font: 'Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --gnb-z: 9999;
}
#dacheum-gnb-wrapper { box-sizing:border-box; }
#dacheum-gnb-wrapper * { box-sizing:border-box; }
#dacheum-gnb-wrapper { position:fixed; top:0; left:0; right:0; z-index:var(--gnb-z); font-family:var(--gnb-font); }

/* ══════ 1단 바 ══════ */
.gnb-bar1 {
  display:flex; align-items:center;
  height:52px;
  background:#fff;
  border-bottom:1px solid var(--gnb-border);
  padding:0 32px;
}

/* 로고 */
.gnb-logo {
  text-decoration:none; flex-shrink:0;
  display:flex; align-items:center; gap:6px;
  margin-right:80px;
}
.gnb-logo-icon { font-size:22px; line-height:1; }
.gnb-logo-text {
  font-size:22px; font-weight:900;
  color:var(--gnb-primary); letter-spacing:-1.5px;
}

/* 1차 메뉴 */
.gnb-nav1 {
  display:flex; align-items:center; gap:24px; flex:1;
}
.gnb-nav1-item {
  padding:14px 6px;
  font-size:17px; font-weight:600;
  color:#4b5563; text-decoration:none;
  transition:color .15s;
  position:relative; white-space:nowrap;
  line-height:1;
}
.gnb-nav1-item:hover { color:var(--gnb-text); }
.gnb-nav1-item.active {
  color:var(--gnb-primary); font-weight:800;
}
/* 활성 1차 메뉴: 밑줄 없이 색상+굵기로 표시 */

/* 사용자 영역 */
.gnb-user {
  display:flex; align-items:center; gap:14px;
  margin-left:auto; flex-shrink:0;
}
.gnb-icon-btn {
  background:none; border:none; cursor:pointer;
  font-size:1.15rem; color:#6b7280; padding:6px;
  border-radius:8px; transition:all .15s;
}
.gnb-icon-btn:hover { color:var(--gnb-primary); background:var(--gnb-hover-bg); }
.gnb-user-role {
  font-size:13px; font-weight:700; color:var(--gnb-primary);
  background:var(--gnb-active-bg); padding:4px 12px; border-radius:12px;
}
.gnb-user-name { font-size:14px; font-weight:700; color:var(--gnb-text); }
.gnb-logout-btn {
  padding:6px 14px; border:1px solid var(--gnb-border); background:#fff;
  border-radius:8px; font-size:14px; font-weight:500; color:#6b7280;
  cursor:pointer; font-family:inherit; transition:all .15s;
}
.gnb-logout-btn:hover { background:#fef2f2; color:#dc2626; border-color:#fecaca; }

/* ══════ 2단 바 ══════ */
.gnb-bar2 {
  display:flex; align-items:center;
  height:44px;
  background:var(--gnb-primary);
  padding:0 32px;
}
.gnb-nav2 {
  display:flex; align-items:center; gap:20px;
}
.gnb-nav2-item {
  padding:10px 8px;
  font-size:16px; font-weight:500;
  color:rgba(255,255,255,.7); text-decoration:none;
  transition:all .15s; white-space:nowrap;
  border-radius:6px; line-height:1;
}
.gnb-nav2-item:hover {
  color:#fff; background:rgba(255,255,255,.12);
}
.gnb-nav2-item.active {
  color:#fff; font-weight:800;
  background:rgba(255,255,255,.2);
}

/* ══════ 반응형 ══════ */
@media (max-width:1200px) {
  .gnb-bar1 { padding:0 16px; }
  .gnb-bar2 { padding:0 16px; }
  .gnb-nav1-item { padding:14px 14px; font-size:15px; }
  .gnb-nav2-item { padding:10px 16px; font-size:14px; }
  .gnb-logo { margin-right:20px; }
}
@media (max-width:768px) {
  .gnb-bar1 { height:48px; padding:0 10px; }
  .gnb-bar2 { height:40px; padding:0 10px; }
  .gnb-nav1-item { padding:12px 10px; font-size:14px; }
  .gnb-nav2-item { padding:8px 12px; font-size:13px; }
  .gnb-user-role, .gnb-user-name { display:none; }
  .gnb-logo-text { font-size:18px; }
  .gnb-logo { margin-right:10px; }
  .gnb-nav2 {
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .gnb-nav2::-webkit-scrollbar { height:4px; }
  .gnb-nav2::-webkit-scrollbar-thumb { background:rgba(255,255,255,.35); border-radius:2px; }
}

/* ══════ 전역 폰트 크기 통일 기준 ══════ */
body { font-size: 16px; line-height: 1.6; }
h1 { font-size: 28px; }
h2 { font-size: 22px; }
h3 { font-size: 18px; }
h4 { font-size: 16px; }
p, li, td, th, label, span, div, input, select, textarea, button { font-size: inherit; }
/* 기존 풀폭 강제(.page-shell 미적용 페이지의 폴백). page-shell 클래스가 부여된 컨테이너는 dacheum-common.css의 토큰 규칙이 우선 적용된다. */
.container:not(.page-shell), .main-content:not(.page-shell), .main-wrap:not(.page-shell) { max-width: 100%; padding-left: 40px; padding-right: 40px; }

/* 페이지 공통 제목 */
.page-title { font-size: 24px !important; }

/* 카드/섹션 헤더 (CLAUDE.md 공통 UI 스케일: card h3 19-20px) */
.card-title, .card-header h3, .section-title { font-size: 19px !important; }

/* 버튼 (CLAUDE.md 공통 UI 스케일: .btn 16px, .btn-sm 14px) */
.btn, .btn-primary, .btn-secondary { font-size: 16px !important; }
.btn-sm { font-size: 14px !important; }

/* 필터/칩/탭 */
.chip, .filter-chip, .filter-tab, .tag-chip { font-size: 14px !important; }

/* 테이블 */
table th, table td { font-size: 15px; padding: 10px 12px; }

/* 입력 (CLAUDE.md 공통 UI 스케일: input/textarea 16px) */
input, select, textarea { font-size: 16px !important; }

/* 사이드바 */
.sidebar-title { font-size: 16px !important; }
