/* 관리자 — Linear 라이트 스타일. 모든 선택자는 .adm- 접두 (공개 CSS와 분리) */
.adm-body { background: #fafafa; color: #1a1a1a; font-size: 14px; }
.adm { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: 100vh; }
.adm-side { background: #fff; border-right: 1px solid #e6e6e6; padding: 14px 10px 12px; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.adm-ws { padding: 4px 8px 14px; }
.adm-ws__logo { height: 22px; display: block; }
.adm-nav { display: grid; gap: 2px; }
.adm-nav__item { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 6px; color: #3b3b3b; font-size: 13.5px; }
.adm-nav__item svg { color: #7a7a7a; flex: 0 0 auto; }
a.adm-nav__item:hover { background: #f2f2f0; text-decoration: none; }
a.adm-nav__item[aria-current="page"] { background: #e9f1e6; color: #005100; font-weight: 600; }
a.adm-nav__item[aria-current="page"] svg { color: #005100; }
.adm-nav__item.is-soon { color: #a8a8a8; cursor: default; }
.adm-soon { margin-left: auto; font-size: 10.5px; background: #f0f0ee; color: #8a8a8a; padding: 1px 7px; border-radius: 999px; }
.adm-nav__sec { font-size: 11px; color: #9a9a9a; letter-spacing: 0.06em; padding: 14px 8px 4px; margin: 0; }
.adm-side__foot { margin-top: auto; border-top: 1px solid #eee; padding-top: 10px; display: grid; gap: 4px; font-size: 12.5px; color: #666; }
.adm-side__user { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-link-btn { background: none; border: 0; padding: 0; font: inherit; font-size: 12.5px; color: #666; cursor: pointer; text-align: left; }
.adm-link-btn:hover, .adm-side__site:hover { color: #005100; }
.adm-side__site { color: #666; }

.adm-content { min-width: 0; }
.adm-top { height: 48px; border-bottom: 1px solid #e6e6e6; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; position: sticky; top: 0; z-index: 5; }
.adm-crumb { font-size: 13.5px; color: #777; }
.adm-crumb a { color: #777; }
.adm-crumb strong { color: #1a1a1a; font-weight: 600; }
.adm-top__actions { display: flex; gap: 8px; }
.adm-main { padding: 20px 24px 56px; max-width: 1240px; }

.adm-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.adm-cards--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.adm-card { background: #fff; border: 1px solid #e6e6e6; border-radius: 8px; padding: 12px 14px; }
.adm-card__label { font-size: 12.5px; color: #777; }
.adm-card__value { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; margin-top: 2px; line-height: 1.2; }
.adm-card__of { font-size: 14px; color: #999; font-weight: 500; }
.adm-card__sub { font-size: 12px; color: #999; margin-top: 2px; }

.adm-panel { background: #fff; border: 1px solid #e6e6e6; border-radius: 8px; margin-bottom: 16px; overflow: hidden; }
.adm-panel__head { display: flex; justify-content: space-between; align-items: center; padding: 9px 14px; border-bottom: 1px solid #eee; font-weight: 600; font-size: 13.5px; }
.adm-panel__more { font-size: 12.5px; font-weight: 500; }
.adm-panel__body { padding: 14px; }
.adm-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.adm-table th { text-align: left; font-weight: 500; color: #888; font-size: 12px; padding: 7px 14px; border-bottom: 1px solid #eee; background: #fcfcfb; white-space: nowrap; }
.adm-table td { padding: 8px 14px; border-bottom: 1px solid #f1f1ef; vertical-align: middle; }
.adm-table tbody tr:last-child td { border-bottom: 0; }
.adm-table tbody tr:hover td { background: #f7f7f5; }
.adm-table a { color: inherit; font-weight: 600; }
.adm-table a:hover { color: #005100; text-decoration: none; }
.adm-nowrap { white-space: nowrap; }
.adm-right { text-align: right; }
.adm-muted { color: #8a8a8a; }
.adm-small { font-size: 12px; }
.adm-empty { padding: 28px 14px; color: #8a8a8a; text-align: center; margin: 0; }

.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 7px; vertical-align: 1px; }
.dot--draft { background: #b8b8b8; } .dot--published { background: #005100; } .dot--ongoing { background: #3fa34d; box-shadow: 0 0 0 3px #e9f1e6; }
.dot--closed { background: #d99a00; } .dot--archived { background: #6b6b66; }
.adm-pill { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: #f0f0ee; color: #555; }
.adm-pill--applied { background: #e9f1e6; color: #005100; } .adm-pill--attended { background: #005100; color: #fff; }
.adm-pill--no_show { background: #fff3d6; color: #8a5a00; } .adm-pill--cancelled { background: #f0f0ee; color: #8a8a8a; text-decoration: line-through; }

.adm-btn { display: inline-flex; align-items: center; gap: 6px; background: #005100; color: #fff; border: 1px solid #005100; border-radius: 6px; padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; line-height: 1.3; }
.adm-btn:hover { background: #003a00; border-color: #003a00; text-decoration: none; }
.adm-btn--ghost { background: #fff; color: #1a1a1a; border-color: #dcdcdc; }
.adm-btn--ghost:hover { background: #f2f2f0; border-color: #cfcfcf; }
.adm-btn--sm { padding: 3px 8px; font-size: 12px; }
.adm-btn--block { width: 100%; justify-content: center; }
.adm-btn[aria-disabled="true"] { opacity: 0.5; cursor: default; }
.adm-inline { display: inline; }
.adm-inline + .adm-inline { margin-left: 4px; }
.adm-link { font-size: 13px; }

.adm-chips { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.adm-chip { font-size: 12.5px; padding: 4px 10px; border-radius: 999px; border: 1px solid #dcdcdc; background: #fff; color: #444; }
.adm-chip:hover { text-decoration: none; border-color: #bbb; }
.adm-chip[aria-current="page"] { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.adm-chip__n { opacity: 0.6; margin-left: 2px; }

.adm-form { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: start; }
.adm-form__submit { display: flex; gap: 8px; }
.adm-field { display: grid; gap: 4px; margin-bottom: 12px; }
.adm-field label { font-size: 12.5px; color: #555; font-weight: 600; }
.adm-field input:not([type="file"]):not([type="radio"]):not([type="checkbox"]), .adm-field select, .adm-field textarea { font: inherit; font-size: 13.5px; padding: 7px 9px; border: 1px solid #dcdcdc; border-radius: 6px; background: #fff; width: 100%; }
.adm-field input:focus, .adm-field select:focus, .adm-field textarea:focus { outline: 2px solid #005100; outline-offset: 0; border-color: #005100; }
.adm-field input[disabled] { background: #f5f5f3; color: #999; }
.adm-field [aria-invalid="true"] { border-color: #c0392b; }
.adm-field textarea { resize: vertical; line-height: 1.5; }
.adm-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.adm-hint { font-size: 12px; color: #999; }
.adm-radios { display: flex; gap: 18px; margin-bottom: 12px; font-size: 13.5px; }
.adm-table--fields td { padding: 5px 10px; }
.adm-thumb { margin-top: 8px; border-radius: 6px; border: 1px solid #e6e6e6; display: block; }
.adm-stack { display: grid; gap: 8px; }
.adm-errors { background: #fde8e8; color: #9b1c1c; border: 1px solid #f3b4b4; border-radius: 6px; padding: 8px 12px; font-size: 13px; margin-bottom: 12px; }
.adm-flash { border-radius: 6px; padding: 8px 12px; font-size: 13px; margin-bottom: 14px; }
.adm-flash--ok { background: #e9f1e6; color: #005100; }
.adm-flash--bad { background: #fde8e8; color: #9b1c1c; }
.adm-search { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.adm-search input { font: inherit; font-size: 13.5px; padding: 7px 10px; border: 1px solid #dcdcdc; border-radius: 6px; width: 280px; background: #fff; }

@media (max-width: 760px) {
  .adm { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .adm-side { position: static; height: auto; flex-direction: row; flex-wrap: wrap; gap: 4px; padding: 8px; border-right: 0; border-bottom: 1px solid #e6e6e6; }
  .adm-ws { padding: 4px 8px; width: 100%; }
  .adm-nav { display: flex; flex-wrap: wrap; gap: 2px; }
  .adm-nav__sec, .adm-nav__item.is-soon, .adm-side__foot { display: none; }
  .adm-main { padding: 14px 12px 40px; }
  .adm-cards, .adm-cards--5 { grid-template-columns: 1fr 1fr; }
  .adm-form { grid-template-columns: 1fr; }
  .adm-grid2 { grid-template-columns: 1fr; }
  .adm-panel { overflow-x: auto; }
  .adm-table--people td:nth-child(4), .adm-table--people td:nth-child(5), .adm-table--people td:nth-child(6), .adm-table--people td:nth-child(7), .adm-table--people th:nth-child(4), .adm-table--people th:nth-child(5), .adm-table--people th:nth-child(6), .adm-table--people th:nth-child(7) { display: none; }
  .adm-table--people td:nth-child(3), .adm-table--people th:nth-child(3) { display: none; }
  .adm-table--people td, .adm-table--people th { padding-left: 8px; padding-right: 8px; }
  .adm-table--people .adm-right { white-space: normal; min-width: 150px; }
  .adm-inline + .adm-inline { margin-left: 0; }
  .adm-table--people .adm-inline { margin: 2px 2px 2px 0; }
  .adm-top { height: auto; padding: 8px 12px; gap: 8px; }
}

/* 행사 폼: 필수 표시 · 흐린 플레이스홀더 · 페이지 주소 앞부분 · 외부 링크 칸은 외부 링크일 때만 · 항목 끌어 옮기기 */
.adm-req { color: #b42318; font-weight: 700; }
.adm-field ::placeholder { color: #b5b5b5; opacity: 1; }
.adm-prefix { display: flex; align-items: stretch; }
.adm-prefix > span { display: flex; align-items: center; padding: 0 8px; font-size: 13px; color: #888; background: #f5f5f3; border: 1px solid #dcdcdc; border-right: 0; border-radius: 6px 0 0 6px; }
.adm-field .adm-prefix input { border-radius: 0 6px 6px 0; min-width: 0; }
.adm-apply:has(input[value="internal"]:checked) .adm-apply__external { display: none; }
.adm-apply:has(input[value="external"]:checked) .adm-apply__internal-hint { display: none; }
.adm-drag { cursor: grab; color: #aaa; font-size: 16px; padding: 0 4px; user-select: none; }
.adm-move { font: inherit; font-size: 11px; line-height: 1; padding: 3px 5px; border: 1px solid #e0e0e0; border-radius: 4px; background: #fff; color: #777; cursor: pointer; margin-left: 2px; }
.adm-move:hover { border-color: #bbb; color: #333; }
.adm-table--fields tr.is-dragging { opacity: 0.4; background: #e9f1e6; }
.adm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
