:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--surface:#14171c;--panel-head:#191d24;--panel-head-grad:linear-gradient(180deg, #1b2027, #161a20);--surface-raise:#1c212a;--surface-hover:#232a34;--surface-sunken:#0e1217;--rail-bg:#0e1116;--border:#272e38;--border-weak:#1d232b;--border-input:#303845;--border-strong:#39414d;--text:#e7eaf0;--muted:#a4acb9;--faint:#7f8a99;--point:#7c7bff;--point-strong:#9b9aff;--point-bg:#7c7bff29;--point-line:#7c7bff73;--point-text:#cfceff;--st-done:#37cf8b;--st-run:#3aa9f0;--st-fail:#ff6159;--st-wait:#7f8a99;--warn:#e9a63c;--warn-bg:#e9a63c21;--warn-border:#e9a63c61;--danger:#ff6159;--danger-bg:#ffbfbb0f;--danger-border:#ff61596b;--ok-bg:#37cf8b1f;--ok-border:#37cf8b5c;--run-bg:#3aa9f01f;--run-border:#3aa9f05c;--neutral-bg:#232935;--neutral-text:#a4acb9;--sidebar-bg:#0e1116;--sidebar-text:#a4acb9;--sidebar-hover:#1c212a;--sidebar-active-bg:#7c7bff29;--sidebar-active-text:#cfceff;--sidebar-group:#7f8a99;--sidebar-line:#272e38;--font-sans:"IBM Plex Sans KR", system-ui, "Apple SD Gothic Neo", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--mono:var(--font-mono);--fs-title:18px;--fs-section:15px;--fs-body:13px;--fs-sub:12px;--fs-help:11.5px;--fs-label:10.5px;--r-card:5px;--r-control:4px;--r-chip:3px;--r-thumb:3px;--h-control:32px;--h-badge:20px;--h-panel-head:38px;--w-rail:56px;--w-rail-wide:216px;--w-sidebar:56px;--h-topbar:52px;--h-tabbar:58px;--shadow-panel:inset 0 1px 0 #ffffff09, 0 16px 30px -26px #000;--shadow-pop:inset 0 1px 0 #ffffff0d, 0 18px 38px -18px #000000e6;--shadow-modal:0 30px 64px -20px #000000e0, 0 0 0 1px #ffffff0f;scrollbar-color:#2f3743 transparent;scrollbar-width:thin}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2f3743 padding-box padding-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#3d4655 padding-box padding-box}a{color:var(--point);text-decoration:none}a:hover{color:var(--point-strong)}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}h1,h2,h3,h4,p,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}:focus-visible{outline:2px solid var(--point);outline-offset:1px}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.micro{font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--faint);white-space:nowrap;flex:none;font-weight:500;line-height:1}.btn{height:var(--h-control);border-radius:var(--r-control);font-size:var(--fs-sub);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-weight:600;line-height:1;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-primary{color:#fff;background:linear-gradient(#8a89ff,#6462e8);border-color:#5d5bd6;box-shadow:inset 0 1px #ffffff2e,0 6px 16px -10px #7c7bffe6}.btn-primary:hover:not(:disabled){background:linear-gradient(#9b9aff,#7472f5)}.btn-secondary{border-color:var(--border);color:var(--text);background:#10141a}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.btn-danger{border-color:var(--danger-border);color:var(--danger);background:#ff61591a}.btn-danger:hover:not(:disabled){background:#ff61592e}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000;padding:0 8px}.btn-ghost:hover:not(:disabled){color:var(--text);background:#ffffff0d}.btn-sm{height:26px;font-size:var(--fs-label);letter-spacing:.01em;padding:0 9px}.btn-icon{padding:0 8px}.input,.select,.textarea{width:100%;min-width:0;height:var(--h-control);border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-sunken);font-size:var(--fs-sub);color:var(--text);padding:0 10px}.textarea{resize:vertical;height:auto;min-height:76px;padding:8px 10px;line-height:1.55}.input::placeholder,.textarea::placeholder{color:#5f6a78}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--point);outline:none;box-shadow:0 0 0 2px #7c7bff3d}.input:disabled,.select:disabled,.textarea:disabled{color:#5f6a78;cursor:not-allowed;background:#0c0f13}.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--danger)}.select{appearance:none;cursor:pointer;text-overflow:ellipsis;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%237f8a99' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6l4 4 4-4'/></svg>");background-position:right 8px center;background-repeat:no-repeat;padding-right:28px}.input.is-mono,.textarea.is-mono{font-family:var(--font-mono)}.check{width:14px;height:14px;accent-color:var(--point);cursor:pointer;flex:none}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;height:30px;font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--border);white-space:nowrap;background:#12161b;padding:0 12px;font-weight:600}.tbl td{height:38px;font-size:var(--fs-sub);color:var(--muted);border-bottom:1px solid var(--border-weak);vertical-align:middle;padding:9px 12px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:#ffffff06}.tbl tbody tr.is-clickable{cursor:pointer}.tbl tbody tr.is-clickable:hover td{color:var(--text);background:#ffffff0b}.tbl tbody tr.is-selected td{background:var(--point-bg);color:var(--text)}.tbl tbody tr.is-selected td:first-child{box-shadow:inset 2px 0 0 var(--point)}.tbl.is-dense td{height:32px;padding:6px 12px}.badge{height:var(--h-badge);border-radius:var(--r-chip);font-size:var(--fs-label);white-space:nowrap;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-weight:600;line-height:1;display:inline-flex}.badge-ok{background:var(--ok-bg);border-color:var(--ok-border);color:var(--st-done)}.badge-run{background:var(--run-bg);border-color:var(--run-border);color:var(--st-run)}.badge-neutral{background:var(--neutral-bg);border-color:var(--border);color:var(--muted)}.badge-warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}.badge-danger{border-color:var(--danger-border);color:var(--danger);background:#ff61591f}.chip{border:1px solid var(--border);border-radius:var(--r-chip);height:22px;color:var(--muted);font-size:var(--fs-label);letter-spacing:.02em;white-space:nowrap;background:#0f1318;flex:none;justify-content:center;align-items:center;padding:0 8px;line-height:1;display:inline-flex}.tabs{border-bottom:1px solid var(--border);align-items:center;gap:2px;display:flex}.tab{height:34px;color:var(--muted);font-size:var(--fs-sub);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.tab:hover:not(:disabled){color:var(--text)}.tab.is-active{color:var(--point-text);border-bottom-color:var(--point)}.tab:disabled{color:#5f6a78;cursor:not-allowed}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-panel);flex-direction:column;min-width:0;display:flex}.card-head{min-height:var(--h-panel-head);background:var(--panel-head-grad);border-bottom:1px solid var(--border);border-radius:4px 4px 0 0;flex-wrap:wrap;flex:none;align-items:center;gap:8px 10px;padding:5px 12px;display:flex}.card-foot{border-top:1px solid var(--border);background:#11151a;border-radius:0 0 4px 4px;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:9px 12px;display:flex}.card-title{font-size:var(--fs-body);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.modal-backdrop{z-index:100;background:#050709b8;justify-content:center;align-items:flex-start;padding:72px 24px 24px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-modal);flex-direction:column;width:100%;min-width:0;max-height:calc(100vh - 96px);display:flex}.dropdown{z-index:60;border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-pop);background:#171b22;flex-direction:column;gap:2px;min-width:220px;max-height:420px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);overflow:auto}.dropdown-item{border-radius:var(--r-control);text-align:left;font-size:var(--fs-sub);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;width:100%;min-width:0;padding:8px 10px;display:flex}.dropdown-item:hover{color:var(--text);background:#ffffff0d}.dropdown-item.is-active{background:var(--point-bg);border-color:var(--point-line);color:var(--point-text);font-weight:600}.dropdown-label{font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--faint);padding:6px 10px 2px;font-weight:500}.dropdown-sep{background:var(--border-weak);height:1px;margin:4px 0}.rail{flex:0 0 var(--w-rail);width:var(--w-rail);background:var(--rail-bg);border-right:1px solid var(--border);z-index:30;flex-direction:column;align-items:center;display:flex}.rail-mark{flex:0 0 var(--h-topbar);width:100%;height:var(--h-topbar);border:0;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.rail-mark:hover .rail-badge{box-shadow:inset 0 0 0 1px #ffffff3d,0 4px 14px -3px #7c7bfff2}.rail-badge{background:linear-gradient(140deg, var(--point), #4b46c9);border-radius:4px;flex:none;width:24px;height:24px;position:relative;box-shadow:inset 0 0 0 1px #ffffff1f,0 4px 12px -4px #7c7bffb3}.rail-badge:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid #fff;position:absolute;top:7px;left:9px}.rail-nav{scrollbar-width:none;flex-direction:column;flex:auto;align-items:center;gap:2px;width:100%;min-height:0;padding:8px 0 12px;display:flex;overflow:hidden auto}.rail-nav::-webkit-scrollbar{width:0}.rail-item{border-radius:var(--r-control);width:40px;height:38px;color:var(--faint);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.rail-item:hover{background:var(--surface-hover);color:var(--text)}.rail-item.is-active{background:var(--point-bg);border-color:var(--point-line);color:var(--point-text)}.rail-item.is-active:before{content:"";background:var(--point);border-radius:0 2px 2px 0;width:2px;position:absolute;top:8px;bottom:8px;left:-9px;box-shadow:0 0 10px #7c7bffcc}.rail-sep{background:var(--border);flex:none;width:22px;height:1px;margin:7px 0}.rail.is-wide{flex-basis:var(--w-rail-wide);width:var(--w-rail-wide);align-items:stretch}.rail.is-wide .rail-mark{justify-content:flex-start;gap:9px;padding:0 14px}.rail.is-wide .rail-nav{align-items:stretch;padding:8px 8px 12px}.rail.is-wide .rail-item{justify-content:flex-start;gap:10px;width:100%;padding:0 10px}.rail.is-wide .rail-item.is-active:before{left:-8px}.rail.is-wide .rail-sep{width:auto;margin:7px 10px}.rail-label{min-width:0;font-size:var(--fs-sub);text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:auto;line-height:1;overflow:hidden}.rail-toggle{border-radius:var(--r-control);width:40px;height:38px;color:var(--faint);font-size:var(--fs-sub);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:10px;line-height:1;display:flex}.rail-toggle:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.rail-toggle:disabled{opacity:.4;cursor:not-allowed}.rail.is-wide .rail-toggle{justify-content:flex-start;width:100%;padding:0 10px}.rail-tip{z-index:90;border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);font-size:var(--fs-sub);white-space:nowrap;box-shadow:var(--shadow-pop);pointer-events:none;background:#232a34;padding:5px 9px;line-height:1;position:fixed}.nav-item{height:34px;font-size:var(--fs-sub);color:var(--sidebar-text);align-items:center;gap:8px;padding:0 14px;text-decoration:none;display:flex}.nav-item:hover{background:var(--sidebar-hover);color:var(--text)}.nav-item.is-active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.nav-group{height:22px;font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--sidebar-group);align-items:center;padding:0 14px;font-weight:500;display:flex}.shell{background:var(--bg);height:100%;min-height:0;display:flex}.shell-main{flex-direction:column;flex:auto;min-width:0;display:flex}.topbar{flex:0 0 var(--h-topbar);height:var(--h-topbar);border-bottom:1px solid var(--border);z-index:20;background:linear-gradient(#1b2027 0%,#12151a 100%);align-items:center;gap:10px;padding:0 12px;display:flex;box-shadow:inset 0 1px #ffffff0d,0 14px 26px -22px #000}.shell-body{flex-direction:column;flex:auto;gap:12px;min-width:0;min-height:0;padding:14px;display:flex;overflow:auto}.switcher{border:1px solid var(--border);border-radius:var(--r-control);min-width:0;max-width:320px;height:34px;color:var(--text);cursor:pointer;background:#10141a;align-items:center;gap:8px;padding:0 9px;display:flex}.switcher:hover{border-color:var(--border-strong);background:var(--surface-hover)}.switcher-text{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;line-height:1.2;display:flex}.iconbtn{border:1px solid var(--border);border-radius:var(--r-control);width:32px;height:32px;color:var(--muted);cursor:pointer;background:#10141a;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.iconbtn:hover{background:var(--surface-hover);color:var(--text)}.iconbtn.is-on{background:var(--point-bg);border-color:var(--point-line);color:var(--point-text)}.dot-count{background:var(--st-fail);color:#fff;white-space:nowrap;border-radius:8px;flex:none;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:-5px;right:-5px}.avatar{color:#dfe4ec;letter-spacing:0;white-space:nowrap;background:linear-gradient(140deg,#3d4657,#232936);border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:600;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1a}.acctbtn{border-radius:var(--r-control);min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:0;display:flex}.seg{border:1px solid var(--border);border-radius:var(--r-control);background:#0d1014;flex:none;gap:2px;padding:2px;display:flex}.seg button{height:28px;color:var(--muted);font-family:inherit;font-size:var(--fs-label);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 10px;font-weight:600;line-height:1}.seg button:hover{color:var(--text);background:#ffffff0a}.seg button[aria-pressed=true]{background:var(--point-bg);color:var(--point-text);box-shadow:inset 0 0 0 1px var(--point-line)}.tabbar{z-index:50;height:var(--h-tabbar);border-top:1px solid var(--border);background:linear-gradient(#171b22,#101318);display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 24px -20px #000}.tabbar button{min-width:0;color:var(--faint);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:4px;font-family:inherit;font-size:10.5px;font-weight:600;line-height:1;display:flex}.tabbar button.is-on{color:var(--point-text);box-shadow:inset 0 2px 0 var(--point);background:linear-gradient(#7c7bff29,#0000)}.sheet-wrap{z-index:70;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{cursor:pointer;background:#050709b8;border:0;padding:0;position:absolute;inset:0}.sheet{border-top:1px solid var(--border);background:#12161b;border-radius:10px 10px 0 0;flex-direction:column;max-height:86vh;display:flex;position:relative;box-shadow:0 -30px 60px -30px #000}.sheet-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:10px;min-height:48px;padding:0 12px;display:flex}.sheet-body{flex:auto;min-height:0;padding:12px 12px 24px;overflow-y:auto}.sheet-item{border-radius:var(--r-control);width:100%;min-height:46px;color:var(--muted);font-family:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;background:#151a20;border:1px solid #0000;align-items:center;gap:10px;padding:0 10px;display:flex}.sheet-item.is-on{background:var(--point-bg);border-color:var(--point-line);color:var(--point-text);font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;top:auto;left:0;overflow:hidden}.scroll-x{min-width:0;max-width:100%;overflow-x:auto}.nowrap{white-space:nowrap}.ellip{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=1079px){.hide-md{display:none!important}.switcher{max-width:220px}}@media (width<=767px){:root{--fs-title:19px;--fs-section:16px;--fs-body:14px;--fs-sub:13px;--fs-help:12.5px;--fs-label:12px;--h-control:44px;--h-topbar:56px}.hide-sm{display:none!important}.rail{display:none}.shell-body{padding:10px;padding-bottom:calc(var(--h-tabbar) + 14px);gap:10px}.tabbar{display:flex}.topbar{gap:8px;padding:0 10px}.btn{min-width:44px;min-height:44px}.btn-sm{height:44px}.btn-icon{min-width:44px}.iconbtn{width:44px;height:44px}.tab,.switcher{height:44px}.seg button{min-width:44px;height:44px;padding:0 14px}.check{width:20px;height:20px}.acctbtn{min-width:44px;min-height:44px}.tbl td{height:44px}.modal-backdrop{align-items:flex-end;padding:16px 10px}.modal{max-height:calc(100vh - 32px)}}
