:root{--bg:#0a0e13;--panel:#111823;--panel-2:#0e141d;--line:#1e2a3a;--line-soft:#17202c;--text:#dbe6f3;--text-dim:#8296ad;--text-faint:#566a80;--accent:#38bdf8;--accent-dim:#0d3b52;--ok:#34d399;--warn:#fbbf24;--err:#f87171;--pending:#94a3b8;--warm:#60a5fa;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:12px}.wrap{max-width:1280px;margin:0 auto;padding:28px 24px 80px}header.top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:20px;display:flex}h1{letter-spacing:-.01em;margin:0 0 6px;font-size:20px}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 12px;font-size:13px;font-weight:600}.sub{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:14px;font-size:12px;display:flex}section{margin-bottom:30px}.grid{gap:12px;display:grid}.cards{grid-template-columns:repeat(auto-fit,minmax(178px,1fr))}.two{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px 15px}.card .label{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px;font-size:11px}.card .value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:21px;font-weight:600}.card .hint{color:var(--text-faint);font-size:11px;font-family:var(--mono);word-break:break-all;margin-top:5px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 16px 6px}.panel.pad{padding-bottom:16px}table{border-collapse:collapse;width:100%;font-size:12.5px}th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:11px;font-weight:500}td{border-bottom:1px solid var(--line-soft);vertical-align:middle;font-variant-numeric:tabular-nums;padding:7px 8px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#38bdf80a}td.num,th.num{text-align:right}td.path{text-overflow:ellipsis;white-space:nowrap;max-width:360px;font-family:var(--mono);font-size:11.5px;overflow:hidden}.pill{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.pill.pending{color:var(--pending);background:#18202d;border-color:#33415a}.pill.warming{color:var(--warm);background:#0e1d30;border-color:#1e3a5f}.pill.done{color:var(--ok);background:#0c2119;border-color:#17513c}.pill.error{color:var(--err);background:#240f0f;border-color:#5b2323}.pill.dim{color:var(--text-faint);border-color:var(--line);background:var(--panel-2)}.dot{background:currentColor;border-radius:50%;width:7px;height:7px;display:inline-block}.dot.live{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.bar{background:var(--line);border-radius:3px;min-width:70px;height:6px;overflow:hidden}.bar>span{background:linear-gradient(90deg, var(--accent), var(--ok));height:100%;transition:width .3s;display:block}button{font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#1b2534;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#24303f;border-color:#2c3b4f}button:disabled{opacity:.42;cursor:not-allowed}button.primary{background:var(--accent-dim);color:#cfefff;border-color:#1d6b8f}button.primary:hover:not(:disabled){background:#12506e}button.danger{color:#f0b4b4}button.tiny{padding:3px 8px;font-size:11px;font-weight:500}input,select{font:inherit;color:var(--text);border:1px solid var(--line);background:#0c1219;border-radius:8px;padding:8px 11px;font-size:13px}input:focus,select:focus{border-color:#2a6f92;outline:none}input.grow{flex:1;min-width:260px}label.check{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.tight{gap:6px}.spread{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.feed{max-height:260px;font-family:var(--mono);font-size:11.5px;overflow-y:auto}.feed .line{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:10px;padding:4px 0;display:flex}.feed .line:last-child{border-bottom:none}.feed .t{color:var(--text-faint);flex:0 0 66px}.feed .m{color:var(--text);word-break:break-all}.feed .lvl-info .m{color:var(--text-dim)}.feed .lvl-done .m{color:var(--ok)}.feed .lvl-warn .m{color:var(--warn)}.feed .lvl-error .m{color:var(--err)}.chart{align-items:flex-end;gap:4px;height:96px;padding:4px 0 0;display:flex}.chart .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;height:100%;display:flex}.chart .col .stack{background:#1d4a63;border-radius:3px 3px 0 0;width:100%;min-height:2px}.chart .col.on .stack{background:linear-gradient(180deg, var(--accent), #1e6f96)}.chart .col .n{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10px}.chart .col .d{color:var(--text-faint);writing-mode:vertical-rl;height:30px;font-size:9px;overflow:hidden}.notice{border:1px solid;border-radius:8px;margin-bottom:12px;padding:9px 12px;font-size:12px}.notice.warn{color:#f4d99a;background:#241d0a;border-color:#574318}.notice.err{color:#f0b4b4;background:#240f0f;border-color:#5b2323}.notice.info{color:#bfe4f7;background:#0c1c26;border-color:#1d4a63}.empty{color:var(--text-faint);text-align:center;padding:18px 0;font-size:12.5px}.right{text-align:right}.kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;display:grid}.kv dt{color:var(--text-dim)}.kv dd{font-family:var(--mono);word-break:break-all;margin:0;font-size:11.5px}
