* { box-sizing: border-box; }
body { font-family: 'Pretendard','Malgun Gothic',sans-serif; max-width:1280px;
       margin:18px auto; padding:0 16px; color:#111827; background:#f9fafb; }
header { background:#fff; border-radius:10px; padding:18px 22px; margin-bottom:18px;
         box-shadow:0 1px 3px rgba(0,0,0,.06); border:1px solid #e5e7eb;
         display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
header h1 { margin:0; font-size:18px; }
header .meta { font-size:13px; color:#6b7280; }
.badge { display:inline-block; padding:2px 8px; border-radius:6px; font-weight:600; font-size:12px; }
.badge.live { background:#fee2e2; color:#b91c1c; }
.badge.dry  { background:#dbeafe; color:#1e40af; }
.btn { background:#2563eb; color:#fff; border:none; padding:8px 14px; border-radius:6px;
       font-weight:600; cursor:pointer; font-size:13.5px; }
.btn:hover { background:#1d4ed8; }
.btn-small { padding:5px 10px; font-size:12.5px; }
.card { background:#fff; border:1px solid #e5e7eb; border-radius:10px;
        padding:16px 18px; margin-bottom:16px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.card.warn { border-left:4px solid #f59e0b; }
.card h2 { font-size:16px; margin:0 0 12px; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th,td { padding:8px 10px; border-bottom:1px solid #e5e7eb; vertical-align:top; text-align:left; }
th { background:#f3f4f6; color:#374151; font-size:12px; font-weight:600; }
tr.status-sent { background:#f0fdf4; }
tr.status-fail { background:#fef2f2; }
tr.status-hold { background:#fffbeb; }
tr.status-dry-run { background:#eff6ff; }
tr.status-dup, tr.status-skip { color:#9ca3af; }
.pill { display:inline-block; padding:2px 8px; border-radius:999px;
        font-size:11.5px; font-weight:600; }
.pill-sent { background:#dcfce7; color:#166534; }
.pill-fail { background:#fee2e2; color:#b91c1c; }
.pill-hold { background:#fef3c7; color:#92400e; }
.pill-dry-run { background:#dbeafe; color:#1e40af; }
.pill-dup, .pill-skip { background:#f3f4f6; color:#6b7280; }
.neg { color:#dc2626; font-weight:700; text-align:right; }
.reason { color:#92400e; font-family:ui-monospace,Menlo,monospace; font-size:12.5px; max-width:280px; }
.ellipsis { max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.muted { color:#6b7280; font-size:12px; }
.empty { text-align:center; padding:24px; color:#9ca3af; }
.inline-form { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.inline-form input { padding:5px 8px; border:1px solid #d1d5db; border-radius:5px; font-size:12.5px; }
footer { margin:24px 0 40px; text-align:center; }

/* Tabbar — 모든 페이지 공통 */
.tabbar { display:flex; gap:6px; margin-bottom:12px; }
.tabbar a { padding:8px 14px; border-radius:8px 8px 0 0; background:#e5e7eb;
            color:#374151; text-decoration:none; font-size:13.5px; font-weight:500; }
.tabbar a.active { background:#2563eb; color:#fff; }
.tabbar a:hover { background:#d1d5db; }
.tabbar a.active:hover { background:#1d4ed8; }
