@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-cyrillic-ext-wght-normal-JQUONSEA.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-vietnamese-wght-normal-TOS5SH3L.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-latin-ext-wght-normal-UBEBQO7H.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-latin-wght-normal-XZSBT77D.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary: #6a47e0;--primary-600: #5636c4;--primary-50: #f1edff;--primary-100: #e3dbff;--accent-pink: #e0529c;--accent-mint: #14b27c;--accent-blue: #4a86f5;--accent-cyan: #12b5d0;--grad-brand: linear-gradient(90deg, #7f5af0 0%, #5a38cc 100%);--grad-cool: linear-gradient(135deg, #7f5af0 0%, #4a86f5 100%);--grad-warm: linear-gradient(135deg, #e0529c 0%, #f08a4b 100%);--grad-fresh: linear-gradient(135deg, #14b27c 0%, #43d19e 100%);--grad-page: none;--bg: #e8e9f7;--surface: #ffffff;--surface-2: #f6f6fd;--surface-3: #eeeefa;--border: #ececf7;--border-strong: #d8d8ee;--text: #1f1b3a;--text-secondary: #4d4a6b;--muted: #6a6890;--green: #0b8a5f;--green-bg: #e2f7ee;--blue: #2a63d8;--blue-bg: #e6eeff;--purple: #6a47e0;--purple-bg: #efeaff;--orange: #c9500f;--orange-bg: #fdeee2;--amber: #a8620a;--amber-bg: #fdf2d9;--red: #d4224c;--red-bg: #fde8ee;--pink: #c22a82;--pink-bg: #fbe8f3;--radius-shell: 28px;--radius: 24px;--radius-sm: 16px;--radius-xs: 10px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(86, 64, 180, .06);--shadow-card: 0 1px 2px rgba(86, 64, 180, .04), 0 14px 34px -18px rgba(86, 64, 180, .22);--shadow-pop: 0 10px 28px -10px rgba(86, 64, 180, .28), 0 28px 60px -22px rgba(86, 64, 180, .3);--shadow-shell: 0 24px 60px -28px rgba(86, 64, 180, .3);--shadow-focus: 0 0 0 4px rgba(106, 71, 224, .18);--header-h: 68px;--footer-h: 32px;--sidenav-w: 252px;--panel-w: 320px;--panel-w-lg: 420px;--font: "Plus Jakarta Sans Variable", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--text-xs: 12px;--lh-xs: 16px;--text-sm: 14px;--lh-sm: 20px;--text-base: 16px;--lh-base: 24px;--text-lg: 18px;--lh-lg: 28px;--text-xl: 26px;--lh-xl: 32px;--text-2xl: 34px;--lh-2xl: 40px;--row-h: 52px;--cell-pad: 12px 18px;--canvas-bg: #fafaff;--canvas-dot: #dcdcf0;color-scheme:light;--status-running: var(--blue);--status-running-bg: var(--blue-bg);--status-waiting: var(--amber);--status-waiting-bg: var(--amber-bg);--status-completed: var(--green);--status-completed-bg: var(--green-bg);--status-aborted: var(--muted);--status-aborted-bg: var(--surface-3);--status-failed: var(--red);--status-failed-bg: var(--red-bg);--status-suspended: var(--purple);--status-suspended-bg: var(--purple-bg);--sla-ok: var(--green);--sla-ok-bg: var(--green-bg);--sla-at-risk: var(--amber);--sla-at-risk-bg: var(--amber-bg);--sla-breached: var(--red);--sla-breached-bg: var(--red-bg);--token-active: var(--primary);--token-visited: var(--green);--token-error: var(--red)}:root[data-theme=dark]{color-scheme:dark;--primary: #a58bff;--primary-600: #c3b2ff;--primary-50: rgba(165, 139, 255, .13);--primary-100: rgba(165, 139, 255, .22);--grad-brand: linear-gradient(90deg, #8a66f2 0%, #5d3bd1 100%);--bg: #0e0b1c;--surface: #18142b;--surface-2: #1e1936;--surface-3: #261f42;--border: #2a2448;--border-strong: #3b3360;--text: #f1eefc;--text-secondary: #bfb9d9;--muted: #9a95b8;--green: #4be0a6;--green-bg: rgba(75, 224, 166, .13);--blue: #7db2ff;--blue-bg: rgba(125, 178, 255, .13);--purple: #b3a0ff;--purple-bg: rgba(165, 139, 255, .15);--orange: #ffa066;--orange-bg: rgba(255, 160, 102, .13);--amber: #f7c75a;--amber-bg: rgba(247, 199, 90, .13);--red: #ff7d99;--red-bg: rgba(255, 125, 153, .13);--pink: #f68fc8;--pink-bg: rgba(246, 143, 200, .13);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 14px 34px -18px rgba(0, 0, 0, .6);--shadow-pop: 0 10px 28px -10px rgba(0, 0, 0, .65), 0 28px 60px -22px rgba(0, 0, 0, .75);--shadow-shell: 0 24px 60px -28px rgba(0, 0, 0, .7);--shadow-focus: 0 0 0 4px rgba(165, 139, 255, .28);--canvas-bg: #120f24;--canvas-dot: #2a2448}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--text);font-size:14px;line-height:1.55;background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.02em;color:var(--text)}h1{font-size:var(--text-xl);line-height:var(--lh-xl);letter-spacing:-.03em}h2{font-size:18px}h3{font-size:15px}p{line-height:1.6;margin:0}code,pre{font-family:var(--font-mono)}::selection{background:var(--primary-100)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}:root[data-density=compact]{--row-h: 38px;--cell-pad: 7px 14px}:root[data-density=spacious]{--row-h: 62px;--cell-pad: 16px 20px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.pagehead{display:flex;align-items:center;gap:12px;margin-bottom:4px}.sub{font-size:14px;max-width:70ch}.btn{white-space:nowrap;flex-shrink:0;border:1px solid transparent;background:var(--surface);color:var(--primary);border-radius:var(--radius-pill);padding:9px 18px;font-size:13.5px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:var(--shadow-card);line-height:1.35;transition:background-color .15s ease,box-shadow .15s ease,transform .1s ease,filter .15s ease}.btn:hover{background:var(--primary-50)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--grad-brand);color:#fff;box-shadow:0 10px 22px -10px #5a38ccd9,0 1px #ffffff38 inset}.btn.primary:hover{filter:brightness(1.08);background:var(--grad-brand)}.btn.ghost{background:transparent;box-shadow:none;color:var(--text-secondary)}.btn.ghost:hover{background:var(--surface-3);color:var(--text)}.btn.danger{color:var(--red);background:var(--red-bg);box-shadow:none}.btn.danger:hover{filter:brightness(.97);background:var(--red-bg)}.btn.sm{padding:5px 13px;font-size:12.5px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;filter:none;transform:none}.badge{font-size:12px;flex-shrink:0;font-weight:650;letter-spacing:0;padding:3px 11px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-secondary);border:0;display:inline-flex;align-items:center;gap:5px;line-height:1.5;white-space:nowrap}.badge.active,.badge.completed{background:var(--green-bg);color:var(--green)}.badge.inactive{background:var(--surface-3);color:var(--muted)}.badge.archived,.badge.failed{background:var(--red-bg);color:var(--red)}.badge.running{background:var(--blue-bg);color:var(--blue)}.badge.waiting{background:var(--amber-bg);color:var(--amber)}.badge.aborted{background:var(--surface-3);color:var(--muted)}.badge.suspended{background:var(--purple-bg);color:var(--purple)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card.flat{box-shadow:none}.card.clickable,a.card{transition:box-shadow .18s ease,transform .14s ease}.card.clickable:hover,a.card:hover{box-shadow:var(--shadow-pop);transform:translateY(-2px)}.card:has(>table),.card:has(>.tablewrap){overflow:hidden}table{width:100%;border-collapse:collapse;background:transparent}th,td{text-align:left;padding:var(--cell-pad);border-bottom:1px solid var(--border);font-size:var(--text-sm);line-height:var(--lh-sm);height:var(--row-h)}th{color:var(--muted);font-weight:650;font-size:var(--text-xs);letter-spacing:.02em;background:transparent;white-space:nowrap;height:auto;padding-top:12px;padding-bottom:12px}thead th{position:sticky;top:0;z-index:2;background:var(--surface)}td.num,.tnum{font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background-color .12s ease}tbody tr:hover td{background:var(--surface-2)}tr.selected td{background:var(--primary-50)}input:not([type=checkbox]):not([type=radio]):not([type=range]),select{font-family:inherit;font-size:13.5px;color:var(--text);border:1px solid transparent;border-radius:var(--radius-pill);padding:10px 16px;background:var(--surface-3);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}textarea{font-family:inherit;font-size:13.5px;color:var(--text);border:1px solid transparent;border-radius:var(--radius-sm);padding:12px 16px;background:var(--surface-3);transition:border-color .15s ease,box-shadow .15s ease}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:var(--shadow-focus)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input[type=checkbox],input[type=radio]{accent-color:var(--primary);width:16px;height:16px}.tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;margin:0 0 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-card)}.tabs a,.tabs button,.tabs .tab{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;padding:7px 18px;margin:0;font-size:13.5px;font-weight:650;color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;transition:background-color .15s ease,color .15s ease;white-space:nowrap;flex:0 0 auto}[role=tab]{white-space:nowrap;flex:0 0 auto}[role=tablist]{max-width:100%;overflow-x:auto;scrollbar-width:none}[role=tablist]::-webkit-scrollbar{display:none}.tabs a:hover,.tabs button:hover,.tabs .tab:hover{color:var(--primary);background:var(--primary-50)}.tabs a.active,.tabs button.active,.tabs .tab.active{background:var(--grad-brand);color:#fff;box-shadow:0 8px 18px -10px #5a38ccd9}.muted{color:var(--muted)}.row{display:flex;gap:8px;align-items:center}.spacer{flex:1}.mono{font-family:var(--font-mono)}.ident{font-family:var(--font-mono);font-weight:600;color:var(--primary);font-size:12.5px}.meter{height:8px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit;background:var(--grad-brand)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 24px;gap:6px}.empty-state .es-icon{width:64px;height:64px;display:grid;place-items:center;background:var(--grad-brand);color:#fff;border-radius:22px;font-size:24px;margin-bottom:12px;box-shadow:0 14px 28px -12px #5a38ccbf}.empty-state h3{margin:0;font-size:16px;font-weight:700}.empty-state p{margin:0;font-size:13.5px;color:var(--muted);max-width:400px}.empty-state .btn{margin-top:14px}.skeleton{position:relative;overflow:hidden;background:var(--surface-3);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 70%,transparent),transparent);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.skeleton-line{height:12px;margin:6px 0}.skeleton-card{height:96px;border-radius:var(--radius)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.auth-card{width:100%;max-width:400px;padding:32px 30px 26px;display:flex;flex-direction:column;gap:14px;border-radius:var(--radius-shell);box-shadow:var(--shadow-pop)}.auth-logo{width:44px;height:44px;margin:0 auto;display:grid;place-items:center;background:var(--grad-brand);color:#fff;border-radius:16px;box-shadow:0 12px 24px -10px #5a38cccc}.auth-title{margin:4px 0 0;text-align:center;font-size:var(--text-xl);letter-spacing:-.02em}.auth-sub{margin:-6px 0 4px;text-align:center;color:var(--muted);font-size:13px}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.auth-field input{padding:12px 18px;border:1px solid transparent;border-radius:var(--radius-pill);font-size:14px;font-family:inherit}.auth-field input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.auth-pw{position:relative;display:flex}.auth-pw input{flex:1;padding-right:64px}.auth-pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);font-size:12px;cursor:pointer;padding:4px 6px}.auth-hint{font-size:12px;color:var(--muted);margin-top:-2px}.auth-alert{font-size:13px;border-radius:var(--radius-sm);padding:9px 11px;display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.auth-alert.error{color:var(--red);background:var(--red-bg)}.auth-alert.success{color:var(--green);background:var(--green-bg)}.auth-alert.info{color:var(--text-secondary);background:var(--surface-3)}.auth-alert button{background:none;border:0;color:inherit;cursor:pointer;font-size:12px;text-decoration:underline}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-links{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.auth-links a,.auth-foot a{color:var(--primary);cursor:pointer;text-decoration:none}.auth-links a:hover,.auth-foot a:hover{text-decoration:underline}.auth-foot{text-align:center;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.auth-card .btn.primary,.auth-card .btn.secondary{justify-content:center;padding:10px;font-size:14px;width:100%}@media (max-width: 900px){.tabs{max-width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.page,.page-content>*{min-width:0;max-width:100%}.page{height:auto!important;min-height:0!important}.split,.layout,.grid2,.grid3,.tabgrid,.chartgrid{grid-template-columns:minmax(0,1fr)!important;flex:none!important;height:auto!important;min-height:0!important}.split>*,.layout>*,.grid2>*,.grid3>*,.tabgrid>*,.chartgrid>*{min-width:0;min-height:0}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.card,.card:has(>table),.card:has(>.tablewrap){max-width:100%;overflow-x:auto}.rail,.railcard{position:static!important;max-height:none!important}.pagehead,.filterbar,.toolbar,.filters,.create,.fchips{flex-wrap:wrap!important}.filterbar>*,.toolbar>*,.filters>*,.create>*{max-width:100%;min-width:0}.filterbar input:not([type=checkbox]),.toolbar input:not([type=checkbox]),.create input{flex:1 1 150px;width:auto!important}.pager{flex-wrap:wrap;gap:8px}.btn{white-space:nowrap}h1{font-size:22px;line-height:28px}table[data-rt]{min-width:0!important;width:100%!important}table[data-rt],table[data-rt] tbody,table[data-rt] tr,table[data-rt] td{display:block;width:100%}.list:has(>table[data-rt]),.listcard:has(>table[data-rt]){overflow-x:hidden}table[data-rt] thead{display:none}table[data-rt] tbody tr{position:relative;padding:10px 16px;border-bottom:1px solid var(--border)}table[data-rt] tbody tr:last-child{border-bottom:0}table[data-rt] td{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 0!important;border:0!important;height:auto!important;min-width:0;text-align:right;overflow-wrap:anywhere;background:transparent!important}table[data-rt] tbody tr{padding:12px 18px!important}table[data-rt] td:before{content:attr(data-label);flex:0 0 36%;max-width:40%;text-align:left;color:var(--muted);font-size:12px;font-weight:650;overflow-wrap:normal}table[data-rt] td[data-label=""]:before,table[data-rt] td:not([data-label]):before{display:none}table[data-rt] td[data-label=""]{justify-content:flex-end}table[data-rt] td[colspan]{display:block;text-align:center}table[data-rt] td>*{max-width:100%}table[data-rt] td a,table[data-rt] td .badge{min-width:0}table[data-rt] tbody tr:hover td{background:transparent}table[data-rt] tbody tr:hover{background:var(--surface-2)}.card:has(>table[data-rt]){overflow:hidden}table[data-rt] td[data-primary]{display:block;text-align:left;font-size:15px;font-weight:700;padding:0 0 8px!important;margin-bottom:4px;border-bottom:1px solid var(--border)!important}table[data-rt] td[data-primary]:before{display:none}table[data-rt] td[data-primary] .muted,table[data-rt] td[data-primary] small{font-weight:500}table[data-rt] td[data-label=""]:has(input[type=checkbox]){position:absolute;top:12px;left:auto;right:16px;width:auto;padding:0!important;z-index:1}table[data-rt] td[data-label=""]:has(.kebab,[aria-haspopup]){position:absolute;top:6px;right:50px;width:auto;padding:0!important;z-index:1}table[data-rt] td{flex-wrap:wrap}table[data-rt] td>div{flex-basis:100%;text-align:right}table[data-rl],table[data-rl] tbody{display:block;width:100%;min-width:0!important}table[data-rl] tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:12px 16px!important;border-bottom:1px solid var(--border)}table[data-rl] td{display:block;padding:0!important;border:0!important;height:auto!important;white-space:nowrap;background:transparent!important}table[data-rl] td:has(a){flex:1 1 150px;white-space:normal;font-weight:650}.detail:has(>.empty-state:only-child),.card.detail:has(>.empty-state:only-child){display:none}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}.btn{min-height:40px}.btn.sm{min-height:34px}a.btn,button.btn{touch-action:manipulation}}
