body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans KR", sans-serif; background:#f6f7fb; color:#111; }
a { color:#0b5bd3; text-decoration:none; }
a:hover { text-decoration:underline; }
.wrap { max-width:1100px; margin:0 auto; padding:20px; }
.topbar { background:#0c1322; color:#fff; padding:14px 0; }
.topbar .wrap { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand { font-weight:800; letter-spacing:0.4px; }
.nav a { color:#fff; margin-right:12px; opacity:.9; }
.nav a:hover { opacity:1; text-decoration:none; }
.card { background:#fff; border:1px solid #e7e9f0; border-radius:12px; padding:16px; box-shadow: 0 6px 18px rgba(15,23,42,.04); }
.grid { display:grid; grid-template-columns: 1fr; gap:12px; }
@media (min-width: 900px) { .grid { grid-template-columns: 1fr 1fr; } }
.h1 { font-size:20px; margin:0 0 12px; }
.muted { color:#6b7280; }
.table { width:100%; border-collapse:collapse; }
.table th, .table td { border-bottom:1px solid #eef0f6; padding:10px 8px; text-align:left; vertical-align:top; }
.badge { display:inline-block; padding:3px 8px; border-radius:999px; font-size:12px; background:#eef2ff; color:#3730a3; }
.badge.gray { background:#f3f4f6; color:#374151; }
.badge.red { background:#fee2e2; color:#991b1b; }
.badge.green { background:#dcfce7; color:#14532d; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.btn { display:inline-block; padding:8px 12px; border-radius:10px; border:1px solid #d9dbe7; background:#fff; color:#111; cursor:pointer; }
.btn.primary { background:#0c1322; border-color:#0c1322; color:#fff; }
.btn.danger { background:#b91c1c; border-color:#b91c1c; color:#fff; }
.inp, textarea, select { width:100%; box-sizing:border-box; padding:10px; border:1px solid #d9dbe7; border-radius:10px; background:#fff; }
textarea { min-height: 140px; }
.kv { display:grid; grid-template-columns: 140px 1fr; gap:10px; }
hr { border:none; border-top:1px solid #eef0f6; margin:14px 0; }

/* ===== Admin dropdown nav (NEWCAR) ===== */
.navDrop { position: relative; display: inline-block; }
.navDropBtn { color:#fff; margin-right:12px; opacity:.9; display:inline-block; }
.navDropBtn:hover { opacity:1; text-decoration:none; }

.navDropMenu{
  display:none;
  position:absolute;
  top: calc(100% + 8px);
  right:0;
  min-width: 180px;
  background:#0c1322;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  overflow:hidden;
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
  z-index: 9999;
}
.navDropMenu a{
  display:block;
  padding:10px 12px;
  color:#fff;
  opacity:.92;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.navDropMenu a:last-child{ border-bottom:none; }
.navDropMenu a:hover{ opacity:1; background: rgba(255,255,255,.08); text-decoration:none; }
.navDropMenu a.active{ opacity:1; background: rgba(255,255,255,.12); font-weight:800; }

/* hover + keyboard */
.navDrop:hover .navDropMenu,
.navDrop:focus-within .navDropMenu { display:block; }

/* small screens */
@media (max-width: 720px){
  .navDropMenu{ right:auto; left:0; }
}

/* ===== Dropdown hover 안정화 (gap 방지) ===== */
.navDrop {
  position: relative;
  display: inline-block;
}

.navDropBtn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* 메뉴를 버튼 바로 밑에 딱 붙임 (틈 제거) */
.navDropMenu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  z-index: 9999;

  /* 기본은 숨김 */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}

/* hover 유지 범위: 버튼뿐 아니라 드롭다운 컨테이너 전체 */
.navDrop:hover .navDropMenu,
.navDrop:focus-within .navDropMenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

/* "마우스 이동 틈" 브릿지: 메뉴 위에 투명 패딩을 줘 hover 끊김 방지 */
.navDropMenu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;         /* 버튼과 메뉴 사이에 보이지 않는 다리 */
  height: 10px;
}

/* 메뉴 링크 클릭 잘 되게 */
.navDropMenu a {
  display: block;
  padding: 10px 12px;
  text-decoration: none;
}

.alert{
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #dbeafe;
  background:#eff6ff;
  color:#1e3a8a;
  font-weight:700;
}