:root{
  --bg:#f6f7fb; --card:#ffffff; --txt:#111827; --muted:#6b7280;
  --pri:#2563eb; --pri2:#1e40af; --bad:#b91c1c; --ok:#047857;
  --line:#e5e7eb;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple SD Gothic Neo","Noto Sans KR",sans-serif}
.wrap{max-width:980px;margin:28px auto;padding:0 14px}
h1{margin:0 0 14px 0;font-size:26px}
h3{margin:18px 0 10px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.lbl{display:block;margin:10px 0 6px 0;color:var(--muted);font-size:13px}
.inp{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:14px}
.btn{display:inline-block;border:0;background:var(--pri);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;text-decoration:none;font-weight:700}
.btn:hover{background:var(--pri2)}
.btn.secondary{background:#eef2ff;color:var(--pri2)}
.btn.secondary:hover{background:#e0e7ff}
.mini{border:1px solid var(--line);background:#fff;padding:6px 9px;border-radius:9px;cursor:pointer}
.mini.danger{border-color:#fecaca;color:var(--bad)}
.mini:hover{background:#f3f4f6}
.msg{margin-top:10px;font-weight:700}
.msg.ok{color:var(--ok)}
.msg.bad{color:var(--bad)}
.muted{color:var(--muted)}
.foot{margin-top:12px}
hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid .k{display:inline-block;width:86px;color:var(--muted)}
.grid .v{font-weight:800}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid2 .span2{grid-column:1 / span 2}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px;margin-top:10px}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th,.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th{background:#f9fafb;text-align:left}
.bad{color:var(--bad);font-weight:800}
.tabs{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:10px;cursor:pointer;font-weight:800}
.tab.active{background:#dbeafe;border-color:#bfdbfe}
.hide{display:none}
