:root { --fg:#1d1d1f; --muted:#6e6e73; --line:#e5e5ea; --ko:#00803D; --bad:#c62828; --bg:#fafafa; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, -apple-system, "Noto Sans KR", sans-serif; color:var(--fg); background:var(--bg); }
main { max-width: 980px; margin: 0 auto; padding: 24px 16px 64px; }
h1 { font-size: 22px; margin: 0 0 4px; } h1 span { color: var(--ko); }
.sub { color: var(--muted); margin: 0 0 24px; }
form.upload { display:flex; gap:8px; align-items:center; padding:16px; border:1px dashed #c7c7cc; border-radius:10px; background:#fff; margin-bottom:24px; flex-wrap:wrap; }
button { background: var(--ko); color:#fff; border:0; border-radius:8px; padding:8px 14px; font-weight:600; cursor:pointer; }
table { width:100%; border-collapse:collapse; background:#fff; border-radius:10px; overflow:hidden; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:13px; color:var(--muted); font-weight:600; }
.bar { height:6px; background:var(--line); border-radius:3px; min-width:120px; overflow:hidden; }
.bar > i { display:block; height:100%; background:var(--ko); }
.st { font-weight:600; } .st.failed { color:var(--bad); } .st.done, .st.done_with_warnings { color:var(--ko); }
.muted { color: var(--muted); font-size: 13px; }
.grid { display:flex; flex-wrap:wrap; gap:4px; margin: 8px 0 24px; }
.cell { width:38px; height:38px; border-radius:6px; background:#e5e5ea; display:flex; align-items:center; justify-content:center; font-size:12px; }
.cell.done { background:#cde8d6; } .cell.fallback { background:#ffd7d7; } .cell.pending { background:#eee; }
section { background:#fff; border-radius:10px; padding:16px; margin-bottom:16px; }
section h2 { font-size:16px; margin:0 0 8px; }
.ko { color: var(--ko); }
a { color: #0a66c2; }
