:root{color-scheme:dark;--bg:#11142A;--surface:#1B2140;--surface-2:#272F57;--run:#7D9BFF;--idle:#959CC4;--warn:#F5BE4C;--crit:#FF7070;--text:#ECEEFA;--muted:#A3AACD;--dim:#7D84AA;--label:#DCE0F2;--line:rgba(255,255,255,.1);--card-line:transparent;--cin:#7D9BFF;--cout:#FFCB5C;--caxis:#7D84AA;--on-accent:#0C0F22;--ok:#7FDBA4;--tint:rgba(125,155,255,.14);--warn-tint:rgba(245,190,76,.14);--crit-tint:rgba(255,112,112,.13);--shadow:0 8px 28px rgba(0,0,0,.4);--r:8px;--mono:"IBM Plex Mono","SF Mono",ui-monospace,monospace;--sans:"IBM Plex Sans KR","Apple SD Gothic Neo",system-ui,sans-serif}:root[data-theme=light]{color-scheme:light;--bg:#F2F4FB;--surface:#FFFFFF;--surface-2:#E4E8F6;--run:#3550C4;--idle:#5F668C;--warn:#9A6200;--crit:#C0362C;--text:#14172B;--muted:#545B7D;--dim:#6E759A;--label:#272C45;--line:rgba(20,23,43,.12);--card-line:rgba(20,23,43,.08);--cin:#3550C4;--cout:#8A5A00;--caxis:#6E759A;--on-accent:#FFFFFF;--ok:#1E7A4D;--tint:rgba(53,80,196,.09);--warn-tint:rgba(154,98,0,.11);--crit-tint:rgba(192,54,44,.09);--shadow:0 6px 20px rgba(20,23,43,.1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}button,input{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}:focus-visible{outline:2px solid var(--run);outline-offset:2px;border-radius:4px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.wrap{max-width:1120px;margin:0 auto;padding:14px;padding-block:14px 36px}.card{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:14px 15px}.bar{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 14px;margin-bottom:9px}.bar .name{font-size:15px;font-weight:700}.pill{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;font-weight:700;font-size:12.5px;background:var(--surface-2)}.pill i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.pill.run{color:var(--run)}.pill.stop{color:var(--idle)}.pill.warn{color:var(--warn)}.pill.off{color:var(--crit)}.spacer{flex:1 1 auto}.seen{color:var(--muted);font-size:12.5px}.seen b{color:var(--text);font-weight:600}.ghost{color:var(--muted);font-size:13px;font-weight:600;padding:6px 10px;border-radius:7px}.ghost:hover{background:var(--surface-2)}.banner{display:flex;gap:10px;align-items:center;background:var(--crit-tint);border:1px solid var(--crit);color:var(--crit);border-radius:var(--r);padding:11px 15px;margin-bottom:12px;font-weight:600;font-size:13px}.dimmed{opacity:.5;filter:saturate(.4)}.hero{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:14px 16px 13px}.pair{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.tv{display:flex;flex-direction:column;gap:4px;min-width:0}.tv .k{font-size:12px;color:var(--muted);font-weight:600}.tv .v{font:700 34px/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.tv .v small{font:600 14px var(--sans);color:var(--muted);margin-left:5px}.tv.in .v{color:var(--cin)}.tv.out .v{color:var(--cout)}.toarrow{color:var(--dim);font-size:20px;padding-bottom:8px}.gapbox{margin-left:auto;text-align:right;padding-left:16px;border-left:1px solid var(--line)}.gapbox .k{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:4px}.gapbox .v{display:block;font:700 25px/1.15 var(--mono);font-variant-numeric:tabular-nums}.gapbox .u{font-size:12px;color:var(--muted)}.track{margin-top:15px}.rail{position:relative;height:9px;border-radius:999px;background:var(--surface-2)}.band{position:absolute;top:0;height:9px;border-radius:999px;background:var(--run);opacity:.42}.mk{position:absolute;top:-4px;width:3px;height:17px;border-radius:2px;transform:translate(-50%)}.mk.in{background:var(--cin)}.mk.out{background:var(--cout)}.mk.set{background:var(--text);width:2px;height:23px;top:-7px}.mk.set b{position:absolute;top:-18px;left:50%;transform:translate(-50%);font:700 11px var(--sans);white-space:nowrap;color:var(--text)}.scale{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--muted)}.verdict{margin-top:11px;font-size:12.5px;font-weight:700;padding:7px 11px;border-radius:7px;background:var(--tint);color:var(--run)}.verdict.warn{background:var(--warn-tint);color:var(--warn)}.verdict.off{background:var(--crit-tint);color:var(--crit)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px}.kpi{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:9px 11px}.kpi .k{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-bottom:5px}.kpi .v{font:600 20px/1 var(--mono);font-variant-numeric:tabular-nums}.kpi .v.s{font:600 17px/1.25 var(--sans)}.kpi .u{font-size:11px;color:var(--muted);margin-left:4px}.kpi.alert{box-shadow:inset 3px 0 0 var(--warn)}.kpi.alert .v{color:var(--warn)}.chart{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:13px 14px;margin-top:9px}.chart h2{margin:0;font-size:13.5px;font-weight:700}.chart .head{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:10px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-left:auto;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:16px;height:0;border-top-width:2.5px;margin-right:6px;vertical-align:middle}canvas{display:block;width:100%;height:150px;max-width:100%}.cfoot{font-size:11px;color:var(--dim);margin-top:7px}.range{display:flex;gap:4px;background:var(--surface-2);padding:3px;border-radius:8px}.range button{padding:5px 11px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--muted)}.range button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.dcard{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:14px;text-align:left;display:flex;flex-direction:column;gap:9px;width:100%}.dcard:hover{background:var(--surface-2)}.dcard .nm{font-weight:700;font-size:15px}.dcard .org{font-size:12.5px;color:var(--dim)}.dcard .temps{display:flex;gap:20px}.dcard .t .k{font-size:11.5px;color:var(--muted)}.dcard .t .v{font:700 23px var(--mono);font-variant-numeric:tabular-nums}.dcard .t.in .v{color:var(--cin)}.dcard .t.out .v{color:var(--cout)}.login{min-height:100%;display:grid;place-items:center;padding:16px}.login form{background:var(--surface);border:1px solid var(--card-line);border-radius:var(--r);padding:28px;width:min(380px,100%);display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.login h1{margin:0 0 4px;font-size:20px}.login p.sub{margin:0 0 10px;color:var(--dim);font-size:13px}.login label{font-size:12.5px;color:var(--muted);font-weight:700}.login input{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:11px 12px;width:100%}.login button[type=submit]{background:var(--run);color:var(--on-accent);border-radius:7px;padding:12px;font-weight:700;margin-top:6px}.login button[disabled]{opacity:.55;cursor:not-allowed}.err{color:var(--crit);font-size:13px;font-weight:600}.muted{color:var(--dim)}.center{display:grid;place-items:center;min-height:60vh;color:var(--dim)}.ctl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.ctl button{border-radius:var(--r);padding:13px;font-size:15px;font-weight:700;background:var(--surface-2);color:var(--muted);display:flex;align-items:center;justify-content:center;gap:9px}.ctl button .k{font-family:var(--mono);font-size:13px;font-weight:500;opacity:.65}.ctl button.on{background:var(--run);color:var(--on-accent)}.ctl button:disabled{opacity:.5;cursor:not-allowed}.fld{background:var(--bg);border:1px solid var(--card-line);border-radius:var(--r);padding:11px 13px;margin-top:8px}.fld .l1{display:flex;align-items:center;gap:11px}.fld .lab{font-size:14px;font-weight:600;color:var(--label);flex:1}.fld .cur{font:600 21px var(--mono);font-variant-numeric:tabular-nums}.fld .cur small{font-size:12px;color:var(--dim);margin-left:5px;font-family:var(--sans)}.editrow{margin-top:13px;padding-top:13px;border-top:1px solid var(--line);display:flex;gap:9px;flex-wrap:wrap;align-items:center}.editrow input{width:120px;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-size:17px;font-weight:600}.rng{font-size:12.5px;color:var(--dim);font-family:var(--mono)}.btn{background:var(--surface-2);border-radius:7px;padding:9px 15px;font-size:13.5px;font-weight:700}.btn.pri{background:var(--run);color:var(--on-accent)}.btn.ghost{color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.steps{display:flex;align-items:center;margin-top:11px;font-size:12.5px;flex-wrap:wrap}.steps .s{display:flex;align-items:center;gap:7px;color:var(--dim);padding:5px 0}.steps .s .b{width:15px;height:15px;border-radius:50%;border:2px solid currentColor;flex:none}.steps .s.on{color:var(--text);font-weight:700}.steps .s.on .b{background:var(--run);border-color:var(--run)}.steps .sep{width:22px;height:1px;background:var(--line);margin:0 9px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1aad;display:grid;place-items:center;padding:16px;z-index:50}.modal .box{background:var(--surface);border-radius:var(--r);padding:24px;max-width:380px;width:100%;box-shadow:var(--shadow)}.modal h3{margin:0 0 9px;font-size:17px}.modal p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}.modal .dev{background:var(--bg);border-radius:7px;padding:10px 12px;margin:13px 0 18px;font-size:13.5px}.modal .acts{display:flex;gap:9px;justify-content:flex-end}.log{width:100%;border-collapse:collapse;font-size:12.5px}.log th{text-align:left;color:var(--dim);font-weight:600;padding:0 10px 8px 0;white-space:nowrap}.log td{padding:8px 10px 8px 0;border-top:1px solid var(--line);white-space:nowrap;vertical-align:top}.log td:nth-child(2),.log td:nth-child(3){white-space:normal;min-width:72px}.log .ok{color:var(--ok)}.log .wait{color:var(--warn)}.log .bad{color:var(--crit)}.scroll{overflow-x:auto}.theme{display:inline-flex;gap:3px;background:var(--surface-2);padding:3px;border-radius:999px}.theme button{width:30px;height:26px;border-radius:999px;font-size:13px;line-height:1;color:var(--muted);display:grid;place-items:center}.theme button[aria-pressed=true]{background:var(--surface);color:var(--text)}.update{position:fixed;left:50%;top:14px;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 8px 8px 16px;font-size:13px;font-weight:600;box-shadow:var(--shadow)}.update button{background:var(--run);color:var(--on-accent);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700}@media(max-width:760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tv .v{font-size:29px}.gapbox{margin-left:0;border-left:0;padding-left:0;text-align:left;flex-basis:100%;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}}@media(max-width:520px){.editrow .rng{flex-basis:100%;margin-top:-2px}.log{font-size:12px}.log th,.log td{padding-right:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.formrow{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.fl{display:flex;flex-direction:column;gap:5px;min-width:0}.fl>span{font-size:11.5px;font-weight:700;color:var(--muted)}.fl>span em{font-style:normal;font-weight:400;color:var(--dim)}.fl input,.fl select{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:13.5px;min-width:140px}.log select{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:12px}.log select:disabled{opacity:.5}.log .btn{padding:5px 9px;font-size:11.5px;white-space:nowrap}.log code{font-family:var(--mono);font-size:11px}@media(max-width:620px){.fl input,.fl select{min-width:120px}}.log input.inline{background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 6px;font-size:12.5px;width:100%;min-width:90px;color:var(--text)}.log input.inline:hover:not(:disabled){border-color:var(--line)}.log input.inline:focus{background:var(--bg);border-color:var(--run);outline:none}.log input.inline:disabled{opacity:.6}.warnbox{background:var(--warn-tint);border:1px solid var(--warn);color:var(--warn);border-radius:7px;padding:9px 12px;font-size:12.5px;font-weight:600;line-height:1.6}.log input[type=checkbox]{width:16px;height:16px;accent-color:var(--run)}
