:root{--ink:#272725;--text:#4a4946;--text-2:#6e6d69;--muted:#8e8d89;--muted-2:#a5a4a0;--line:#efeeec;--line-2:#e7e6e4;--line-3:#deddda;--surface:#f3f2f0;--surface-2:#f1f0ee;--surface-3:#f8f7f5;--accent:#ff802d;--accent-text:#c2510f;--accent-soft:#fff4ec;--success:#1faf4b;--success-2:#12b76a;--danger:#f0293e;--danger-2:#f04438;--warn:#b54708;--warn-soft:#fff6e0;--font:"Noto Sans", "Pretendard Variable", Pretendard, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--ink);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;background:#fff;line-height:1.5}a{color:var(--accent-text)}a:hover{color:#9a3f0a}button{font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--muted);outline-offset:1px}h1,h2,h3{margin:0}.mono{font-family:var(--mono)}.num{font-variant-numeric:tabular-nums}.ms{white-space:nowrap;font-variation-settings:"wght" 400, "opsz" 24, "FILL" 0;-webkit-font-feature-settings:"liga";direction:ltr;font-family:Material Symbols Outlined;font-size:22px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.ms.fill{font-variation-settings:"wght" 400, "opsz" 24, "FILL" 1}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line-2);background:#fff;flex:none;align-items:center;gap:28px;height:42px;padding:0 100px;display:flex}.brand{color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.brand img{height:20px;margin-right:4px}.brand .sub{opacity:.5}.brand:hover{color:var(--ink)}.srv-state{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:600;display:flex}.dot{background:var(--success-2);border-radius:50%;flex:none;width:8px;height:8px}.dot.off{background:var(--muted-2)}.topbar-right{align-items:center;gap:22px;margin-left:auto;display:flex}.me{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;margin:-4px -6px;padding:4px 6px;font-family:inherit;font-size:14px;display:flex}.me:hover{background:var(--surface)}.avatar{background:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:flex}.me .tenant{color:var(--muted);font-weight:400}.icon-btn{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0;display:flex}.notice{background:var(--text);border-bottom:1px solid var(--text);color:#fff;flex:none;align-items:center;gap:14px;height:52px;padding:0 100px;font-size:15px;display:flex}.notice .label{align-items:center;gap:8px;font-weight:700;display:flex}.notice .label:before{content:"";background:var(--danger-2);border-radius:50%;width:6px;height:6px}.notice .bar{background:#ffffff80;width:1px;height:14px}.notice .title{font-weight:700}.notice .new{background:var(--danger-2);border-radius:999px;align-items:center;height:22px;padding:0 9px;font-size:13px;font-weight:700;display:flex}.notice .more{color:#ffffffb3;margin-left:auto;font-size:13px;font-weight:600;text-decoration:none}.frame{flex:1;grid-template-columns:minmax(0,1fr);display:grid}.frame-inner{grid-template-columns:300px minmax(0,1fr);display:grid}.sidenav{background:var(--surface);border-right:1px solid var(--line-2);flex-direction:column;gap:10px;padding:40px 24px 64px 60px;display:flex}.sidenav a{height:48px;color:var(--text);border-radius:6px;align-items:center;gap:10px;padding:0 18px;font-size:17px;font-weight:500;text-decoration:none;display:flex}.sidenav a .ms{color:var(--muted-2)}.sidenav a.active{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 3px #27272514}.sidenav a.active .ms{color:var(--accent);font-variation-settings:"wght" 400, "opsz" 24, "FILL" 1}.main{flex-direction:column;gap:40px;min-width:0;padding:40px 100px 64px 56px;display:flex}.main.split{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:24px;font-size:13px;display:grid}.main.split>.col{flex-direction:column;gap:24px;min-width:0;display:flex}.panel{background:var(--surface);border-left:1px solid var(--line-2);flex-direction:column;align-self:stretch;gap:24px;min-width:0;margin:-32px -100px -64px 0;padding:36px 40px 64px;display:flex}.hero{background:var(--accent);color:#fff;position:relative;overflow:hidden}.hero .bg{background:url(/hero.gif) 50%/cover no-repeat;position:absolute;inset:0}.hero>:not(.bg){position:relative}.hero-page{grid-column:1/-1;justify-content:space-between;align-items:center;gap:24px;width:calc(100% + 156px);height:132px;margin:-40px -100px 8px -56px;padding:0 100px 0 56px;display:flex}.hero-page h1{align-items:center;gap:12px;font-size:28px;font-weight:700;display:flex}.hero-page p{margin:4px 0 0;font-size:13px}.main:not(.split)>.hero-page{width:auto;margin-bottom:-8px}.hero-home{flex-direction:column;gap:24px;margin:-40px -100px -8px -56px;padding:36px 100px 40px 56px;display:flex}.hero-home .bg{background-position:50%;background-size:100%}.hero-home h1{font-size:26px;font-weight:700;line-height:1.3}.hero-home .lead{font-size:14px}.hero-actions{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.hue-jobs .bg{filter:hue-rotate(160deg)}.hue-data .bg{filter:hue-rotate(-36deg)}.hue-wizard .bg{filter:hue-rotate(6deg)saturate(1.05)}.hue-model .bg{filter:hue-rotate(-60deg)}.hue-admin .bg{filter:hue-rotate(200deg)}.hue-tenant .bg{filter:hue-rotate(190deg)saturate(1.3)brightness(1.05)}.hue-schedule:after{content:"";z-index:1;background:linear-gradient(100deg,#0a1226f7 40%,#0a122699 75%,#0a122626 100%);position:absolute;inset:0}.hue-schedule>:not(.bg){z-index:2;position:relative}.btn{border:1px solid var(--line-3);height:40px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{color:var(--ink);background:var(--surface-3)}.btn:disabled{opacity:.45;cursor:default}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.dark:hover{color:#fff;background:#3a3a37}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ghost-white{color:#fff;background:0 0;border-color:#ffffffb3}.btn.white{color:var(--ink);background:#fff;border-color:#fff}.btn.sm{height:32px;padding:0 12px;font-size:12px;font-weight:600}.btn.md{height:36px;padding:0 14px;font-size:13px}.btn.lg{height:44px}.btn.xl{border-radius:8px;width:100%;height:52px;font-size:15px}.btn.link{background:0 0;border:0;height:36px;padding:0 4px;font-size:13px;font-weight:500}.filter-btn{border:1px solid var(--line-3);height:36px;color:var(--ink);background:#fff;border-radius:6px;align-items:center;gap:24px;padding:0 12px;font-size:13px;display:flex}.pill{color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;height:22px;padding:0 9px 0 7px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.pill:before{content:"";background:#fff;border-radius:50%;width:6px;height:6px}.st{white-space:nowrap;align-items:center;height:24px;font-size:12px;font-weight:700;display:inline-flex}.c-ok{color:var(--success)}.bg-ok{background:var(--success)}.c-bad{color:var(--danger)}.bg-bad{background:var(--danger)}.c-warn{color:var(--warn)}.bg-warn{background:var(--warn)}.c-mute{color:var(--muted-2)}.bg-mute{background:var(--muted-2)}.c-run{color:var(--accent-text)}.bg-run{background:var(--accent)}.tag{background:var(--surface);height:20px;color:var(--text);border-radius:4px;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.box-badge{color:#fff;border-radius:5px;justify-content:center;align-items:center;min-width:68px;height:26px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.chip-accent{background:var(--accent);color:#fff;border-radius:4px;align-items:center;height:24px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.section{flex-direction:column;gap:8px;display:flex}.section-head{align-items:baseline;gap:10px;display:flex}.section-head h3{font-size:20px;font-weight:700;line-height:1.4}.section-head .sub{color:var(--muted);font-size:12px}.section-head .right{margin-left:auto}.tbl{border-collapse:collapse;table-layout:fixed;width:100%}.tbl th{height:40px;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:0 12px;font-size:13px;font-weight:400}.tbl td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;height:50px;padding:0 12px;font-size:15px}.tbl th:first-child,.tbl td:first-child{padding-left:8px}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-3)}.name-cell{flex-direction:column;min-width:0;display:flex}.name-cell a,.name-cell b{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:1.4;text-decoration:none;overflow:hidden}.name-cell span{color:var(--muted);font-size:12px;line-height:1.3}.boxed{border:1px solid var(--line-2);background:#fff;border-radius:10px;overflow:hidden}.btbl{border-collapse:collapse;width:100%;font-size:13px}.btbl thead tr{text-align:left;color:var(--text-2);background:var(--surface-3);font-size:12px}.btbl th{text-align:left;padding:10px 12px;font-weight:500}.btbl td{border-top:1px solid var(--line);padding:12px}.btbl th:first-child,.btbl td:first-child{padding-left:16px}.btbl th:last-child,.btbl td:last-child{padding-right:16px}.btbl tr.click{cursor:pointer}.btbl tr.click:hover td{background:var(--surface-3)}.btbl tr.sel td{background:var(--accent-soft)}.btbl tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.sel-mark{align-items:center;gap:8px;font-weight:700;display:flex}.sel-mark .ms{color:var(--accent);font-size:18px}.tabs{border-bottom:1px solid var(--line-2);gap:24px;display:flex}.tabs button{cursor:pointer;white-space:nowrap;height:44px;color:var(--text-2);background:0 0;border:0;align-items:center;padding:0;font-size:13px;font-weight:500;display:flex}.tabs button.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.toolbar .count{color:var(--text-2);font-size:12px}.seg{background:var(--line-2);border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{cursor:pointer;height:36px;color:var(--text-2);background:0 0;border:0;border-radius:6px;font-size:13px;font-weight:500}.seg button.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 2px #00000014}.card{background:#fff;border-radius:10px}.kv{background:#fff;border-radius:10px;flex-direction:column;padding:4px 20px;display:flex}.kv>div{border-top:1px solid var(--line);grid-template-columns:88px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.kv>div:first-child{border-top:0}.kv dt,.kv .k{color:var(--muted);font-size:13px}.kv dd,.kv .v{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:500}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:13px;font-weight:600}.input,.select,.textarea{border:1px solid var(--line-3);height:44px;color:var(--ink);background:#fff;border-radius:8px;width:100%;padding:0 14px;font-family:inherit;font-size:14px}.textarea{height:auto;min-height:96px;font-family:var(--mono);resize:vertical;padding:10px 14px;font-size:13px}.input.mono{font-family:var(--mono);font-size:13px}.hint{color:var(--muted);font-size:12px}.note{background:var(--warn-soft);color:var(--text);border-radius:10px;gap:10px;padding:14px 16px;font-size:12px;line-height:1.6;display:flex}.note .ms{color:var(--warn);font-size:18px}.note.err{background:#fff}.note.err .ms{color:var(--danger)}.alert{background:#fff;border-radius:10px;flex-direction:column;gap:6px;padding:18px 20px;display:flex}.alert .title{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.alert .title .ms{font-size:20px}.alert .body{color:var(--text);font-size:13px;line-height:1.6}.drop{background:var(--line-2);cursor:pointer;text-align:center;border:1.5px dashed #c9c8c4;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:150px;padding:24px;display:flex}.drop.has{background:#fff}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat{border:1px solid var(--line-2);border-radius:10px;flex-direction:column;gap:4px;padding:18px 16px;display:flex}.stat .k{color:var(--text-2);font-size:12px}.stat .v{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.stat .v.small{margin-top:4px;font-size:14px;font-weight:600}.statbar{color:var(--ink);background:#fff;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));padding:14px 0;display:grid;box-shadow:0 8px 24px #27272514}.statbar>div{flex-direction:column;gap:2px;padding:2px 28px;display:flex}.statbar>div+div{border-left:1px solid var(--line-2)}.statbar .k{color:var(--text-2);font-size:13px}.statbar .v{align-items:center;gap:10px;margin:2px 0;display:flex}.statbar .v b{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.25}.statbar .s{color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:40px;font-size:14px}.err-text{color:var(--danger);font-size:13px}.toast{z-index:50;background:var(--ink);color:#fff;border-radius:10px;min-width:280px;max-width:480px;padding:14px 18px;font-size:14px;position:fixed;bottom:24px;right:92px;box-shadow:0 8px 24px #0003}.toast.bad{background:var(--danger)}.modal-back{z-index:40;background:#27272573;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;gap:18px;width:520px;max-width:calc(100vw - 32px);padding:28px;display:flex;box-shadow:0 16px 48px #0003}.modal h2{font-size:20px;font-weight:700}.modal .actions{justify-content:flex-end;gap:8px;display:flex}.secret{font-family:var(--mono);background:var(--surface-3);border:1px solid var(--line-2);white-space:pre-wrap;word-break:break-all;border-radius:8px;padding:12px;font-size:12px}.toggle{background:var(--line-3);cursor:pointer;border:0;border-radius:999px;flex:none;width:38px;height:22px;padding:0;position:relative}.toggle i{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle.on{background:var(--accent)}.toggle.on i{left:18px}.toggle:disabled{opacity:.5;cursor:default}.seg2{background:var(--line-2);border-radius:8px;gap:4px;padding:4px;display:grid}.seg2 button{height:36px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:12.5px;font-weight:500}.seg2 button.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 2px #00000014}
