/* ===== ADMIN (dark) ===== */

/* btn--danger */
.btn--danger { background: transparent; color: #c97a7a; border: 1px solid rgba(201,122,122,0.35); }
.btn--danger:hover { background: rgba(201,122,122,0.12); border-color: rgba(201,122,122,0.6); color: #e09090; }

/* adm-nav */
.adm-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.adm-nav__link { display: inline-flex; align-items: center; padding: 0 14px; min-height: 2.4rem;
  border-radius: var(--radius-pill, 999px); font-size: var(--text-sm, .85rem); font-family: var(--font-meta);
  font-weight: var(--fw-medium, 500); border: 1px solid var(--color-border-default);
  color: var(--color-text-secondary); background: transparent; text-decoration: none;
  transition: color .15s, border-color .15s, background .15s; }
.adm-nav__link:hover { color: var(--color-text-primary); border-color: var(--color-border-strong); background: var(--color-bg-surface-soft); }
.adm-nav__link--on { background: var(--color-accent); color: var(--color-text-on-accent); border-color: var(--color-accent); }
.adm-nav__link--on:hover { background: var(--color-accent-hover, var(--color-accent)); border-color: var(--color-accent-hover, var(--color-accent)); color: var(--color-text-on-accent); }

/* section header */
.adm-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.adm-section-head h2 { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); color: var(--color-text-primary); margin: 0; }

/* stat grid */
.adm-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 4px; }
@media (max-width: 640px) { .adm-stat-grid { grid-template-columns: repeat(2, 1fr); } }

/* cards */
.adm-card { background: var(--color-bg-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-lg, 20px); padding: 18px 20px; }
.adm-card--form { background: var(--color-bg-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-lg, 20px); padding: 24px 28px; }
.adm-card__label { font-size: var(--text-sm, .85rem); font-family: var(--font-meta); color: var(--color-text-muted); margin: 0 0 6px; font-weight: var(--fw-medium, 500); }
.adm-stat { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: var(--fw-bold, 700); font-family: var(--font-display); color: var(--color-text-primary); line-height: 1; }

/* table */
.adm-table-wrap { overflow-x: auto; }
.adm-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.adm-table th { text-align: left; padding: 10px 14px; font-size: var(--text-xs, .78rem); font-family: var(--font-meta); font-weight: var(--fw-semibold, 600); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--color-border-default); white-space: nowrap; }
.adm-table td { padding: 12px 14px; border-bottom: 1px solid var(--color-border-soft); vertical-align: middle; color: var(--color-text-body); }
.adm-table tr:last-child td { border-bottom: none; }
.adm-table tr:hover td { background: var(--color-bg-surface-soft); }
.adm-table strong { color: var(--color-text-primary); font-weight: var(--fw-semibold, 600); }

/* helpers */
.adm-muted { font-size: 13px; color: var(--color-text-muted); margin-top: 2px; }
.adm-you-tag { font-size: 12px; color: var(--color-accent); margin-left: 4px; }
.adm-row-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

/* badges */
.adm-badge { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: var(--radius-pill, 999px); font-size: 12px; font-family: var(--font-meta); font-weight: var(--fw-medium, 500); white-space: nowrap; }
.adm-badge--pending { background: rgba(212,159,138,0.14); color: #d4a080; border: 1px solid rgba(212,159,138,0.3); }
.adm-badge--approved { background: rgba(170,179,140,0.14); color: var(--color-accent); border: 1px solid rgba(170,179,140,0.3); }
.adm-badge--blocked { background: rgba(201,122,122,0.12); color: #c97a7a; border: 1px solid rgba(201,122,122,0.28); }
.adm-badge--public { background: var(--color-accent-soft); color: var(--color-accent); border: 1px solid rgba(170,179,140,0.3); }
.adm-badge--member { background: rgba(212,159,138,0.14); color: #d4a080; border: 1px solid rgba(212,159,138,0.3); }
.adm-badge--external { background: rgba(157,184,212,0.14); color: #9db8d4; border: 1px solid rgba(157,184,212,0.3); }

/* service tag */
.adm-service-tag { display: inline-block; padding: 2px 8px; border-radius: var(--radius-pill, 999px); font-size: 12px; background: var(--color-bg-surface-soft); border: 1px solid var(--color-border-soft); color: var(--color-text-secondary); }

/* note / inline forms */
.adm-note-form { display: flex; gap: 6px; align-items: center; margin-top: 6px; }
.adm-inline-form { display: flex; gap: 6px; align-items: center; }

/* form elements */
.adm-form { display: flex; flex-direction: column; gap: 0; }
.adm-form-field { margin-bottom: 16px; }
.adm-form-field label { display: block; font-size: var(--text-sm, .85rem); font-weight: var(--fw-semibold, 600); color: var(--color-text-secondary); margin-bottom: 6px; }
.adm-input { display: block; width: 100%; min-height: 2.6rem; padding: 0 12px;
  background: var(--color-bg-page); border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md, 14px); color: var(--color-text-primary);
  font-size: 14px; font-family: inherit; box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s; }
.adm-input:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-focus-ring, rgba(170,179,140,0.3)); }
.adm-input--sm { min-height: 2rem; font-size: 13px; padding: 0 10px; border-radius: var(--radius-sm, 8px); }
.adm-select { display: block; width: 100%; min-height: 2.6rem; padding: 0 12px;
  background: var(--color-bg-page); border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md, 14px); color: var(--color-text-primary);
  font-size: 14px; font-family: inherit; box-sizing: border-box; cursor: pointer;
  transition: border-color .15s; }
.adm-select:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-focus-ring, rgba(170,179,140,0.3)); }
.adm-textarea { display: block; width: 100%; padding: 10px 12px;
  background: var(--color-bg-page); border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md, 14px); color: var(--color-text-primary);
  font-size: 14px; font-family: var(--font-mono); line-height: 1.6; resize: vertical;
  box-sizing: border-box; transition: border-color .15s; }
.adm-textarea:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-focus-ring, rgba(170,179,140,0.3)); }

/* form grid */
.adm-form-grid { display: grid; gap: 14px; margin-bottom: 0; }
.adm-form-grid--2 { grid-template-columns: repeat(2, 1fr); }
.adm-form-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 640px) { .adm-form-grid--2, .adm-form-grid--3 { grid-template-columns: 1fr; } }

/* 표지 업로드 위젯 */
.adm-upload { display:flex; align-items:center; gap:10px; margin-top:8px; flex-wrap:wrap; }
.adm-upload input[type="file"] { color: var(--color-text-secondary); font-size:13px; }
.adm-upload__status { font-size:12px; color: var(--color-text-muted); }
.adm-upload__preview { display:block; margin-top:10px; max-width:240px; max-height:160px; border-radius:10px; border:1px solid var(--color-border-soft); }
.adm-hint { margin-top:6px; font-size:12px; color: var(--color-text-muted); }

/* 가져오기 결과 목록 */
.import-result { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.import-result li { display: grid; grid-template-columns: auto auto 1fr; gap: 10px; align-items: baseline;
  padding: 8px 10px; border: 1px solid var(--color-border-soft); border-radius: 8px; font-size: 14px; }
.import-result li.ok { border-color: color-mix(in srgb, var(--color-accent) 45%, transparent); }
.import-result li.fail { opacity: .8; }
.import-result__mark { font-weight: 700; }
.import-result li.ok .import-result__mark { color: var(--color-accent); }
.import-result li.fail .import-result__mark { color: #d99a8b; }
.import-result__file { font-family: var(--font-mono, monospace); color: var(--color-text-secondary); font-size: 12px; }
.import-result__msg { color: var(--color-text-primary); }

/* 서비스 지정회원 목록 */
.grant-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.grant-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 8px 12px; border: 1px solid var(--color-border-soft); border-radius: 8px; }
