:root { --ink:#182033; --muted:#697386; --line:#e2e6ec; --surface:#fff; --canvas:#f5f7f9; --gold:#c99a20; --gold-soft:#fff8df; --danger:#b42318; --ok:#137a52; }
* { box-sizing:border-box; letter-spacing:0; }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:Pretendard,"Noto Sans KR",sans-serif; }
button,input,textarea { font:inherit; letter-spacing:0; }
button { cursor:pointer; }
.admin-login[hidden],.admin-shell[hidden] { display:none !important; }
.admin-login { min-height:100vh; display:grid; place-items:center; padding:24px; background:#111722; }
.admin-login-panel { width:min(400px,100%); padding:36px; border:1px solid #30394a; border-radius:8px; background:#fff; }
.admin-wordmark { color:var(--gold); font-weight:900; }
.admin-login h1 { margin:12px 0 8px; font-size:26px; }
.admin-login p { margin:0 0 28px; color:var(--muted); }
.admin-login button { width:100%; min-height:46px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid #ccd2dc; border-radius:6px; color:var(--ink); background:#fff; font-weight:700; }
#admin-login-message { min-height:20px; margin-top:14px; color:var(--danger); font-size:13px; }
.admin-shell { min-height:100vh; display:grid; grid-template-columns:224px minmax(0,1fr); }
.admin-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid var(--line); background:#fff; }
.admin-side-head { min-height:68px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; font-weight:800; }
#admin-nav { display:grid; gap:3px; padding:4px 10px; }
#admin-nav button { position:relative; min-height:42px; display:flex; align-items:center; gap:10px; padding:0 12px; border:0; border-radius:6px; color:#596579; background:transparent; text-align:left; font-size:14px; font-weight:650; }
#admin-nav button:hover { color:var(--ink); background:#f5f7f9; }
#admin-nav button.active { color:#8d6810; background:var(--gold-soft); }
#admin-nav svg { width:17px; height:17px; }
#refund-badge:not(:empty) { margin-left:auto; min-width:18px; padding:2px 5px; border-radius:10px; color:#fff; background:var(--danger); font-size:10px; text-align:center; }
.admin-account { padding:16px 20px; border-top:1px solid var(--line); }
.admin-account span,.admin-account small { display:block; overflow:hidden; text-overflow:ellipsis; }
.admin-account span { font-size:12px; color:var(--muted); }
.admin-account small { margin-top:4px; color:#8d6810; }
.admin-account button { display:flex; align-items:center; gap:6px; margin-top:12px; padding:0; border:0; color:var(--muted); background:none; font-size:12px; }
.admin-account svg { width:14px; }
.admin-main { min-width:0; padding:30px clamp(18px,4vw,52px) 56px; }
.admin-page-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.admin-page-head h1 { margin:0; font-size:24px; }
.admin-page-head p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.icon-button { width:38px; height:38px; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:6px; color:var(--muted); background:#fff; }
.icon-button svg { width:18px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.admin-stat { min-height:112px; padding:18px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.admin-stat span { color:var(--muted); font-size:12px; }
.admin-stat strong { display:block; margin-top:14px; font-size:24px; }
.admin-attention { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-bottom:24px; border:1px solid #efc5c0; background:#efc5c0; }
.admin-attention div { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; background:#fff8f7; }
.admin-attention span { color:#7a403a; font-size:12px; }
.admin-attention strong { color:var(--danger); font-size:18px; }
.admin-panel { margin-top:18px; border:1px solid var(--line); background:#fff; overflow:auto; }
.admin-panel-head { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:0 16px; border-bottom:1px solid var(--line); }
.admin-panel-head h2 { margin:0; font-size:15px; }
.admin-table { width:100%; min-width:760px; border-collapse:collapse; font-size:13px; }
.admin-table th,.admin-table td { padding:12px 14px; border-bottom:1px solid #edf0f4; text-align:left; vertical-align:middle; }
.admin-table th { color:var(--muted); background:#fafbfc; font-size:11px; font-weight:700; }
.admin-table tbody tr:hover { background:#fcfcfd; }
.status { display:inline-flex; padding:4px 7px; border-radius:4px; background:#eef1f5; color:#596579; font-size:11px; font-weight:750; }
.status.done,.status.active,.status.completed { color:var(--ok); background:#eaf8f2; }
.status.requested,.status.failed { color:var(--danger); background:#fff0ee; }
.text-button { padding:6px 9px; border:1px solid var(--line); border-radius:5px; color:var(--ink); background:#fff; font-size:12px; }
.text-button.primary { border-color:#d7b651; background:var(--gold-soft); color:#77570c; }
.text-button.danger { border-color:#efb3ad; color:var(--danger); }
.admin-empty,.admin-loading { padding:56px 20px; text-align:center; color:var(--muted); }
.admin-mobile-header,.mobile-only,#admin-scrim { display:none; }
dialog { width:min(760px,calc(100% - 32px)); max-height:88vh; padding:0; border:0; border-radius:8px; color:var(--ink); box-shadow:0 24px 72px rgba(15,23,42,.28); }
dialog::backdrop { background:rgba(15,23,42,.48); }
.dialog-close { position:absolute; right:14px; top:14px; }
#admin-detail-content { padding:28px; }
.detail-title { padding-right:44px; margin:0 0 24px; font-size:20px; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.detail-field { min-height:66px; padding:12px; background:#fff; }
.detail-field span { display:block; color:var(--muted); font-size:11px; }
.detail-field strong { display:block; margin-top:6px; font-size:13px; overflow-wrap:anywhere; }
.detail-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.admin-inline-form { display:flex; flex-wrap:wrap; gap:8px; padding:16px; }
.admin-inline-form input,.admin-inline-form select { min-height:38px; padding:0 10px; border:1px solid var(--line); border-radius:5px; color:var(--ink); background:#fff; }
.admin-inline-form input { flex:1; min-width:220px; }
@media (max-width:900px) {
  .admin-shell { display:block; padding-top:56px; }
  .admin-mobile-header { position:fixed; inset:0 0 auto; z-index:30; height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; border-bottom:1px solid var(--line); background:#fff; }
  .admin-sidebar { position:fixed; inset:0 auto 0 0; z-index:50; width:256px; transform:translateX(-100%); transition:transform .2s; }
  .admin-sidebar.open { transform:translateX(0); }
  .mobile-only { display:grid; }
  #admin-scrim.open { position:fixed; inset:0; z-index:40; display:block; background:rgba(15,23,42,.36); }
  .admin-main { padding:24px 16px 44px; }
  .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) { .admin-stats,.detail-grid { grid-template-columns:1fr; } .admin-stat { min-height:92px; } }
@media (max-width:520px) { .admin-attention { grid-template-columns:1fr; } }
