.nav-progress[data-v-bea99702]{position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;pointer-events:none;background:#00dcff26}.np-bar[data-v-bea99702]{height:100%;background:linear-gradient(90deg,var(--c0),var(--c1));border-radius:0 2px 2px 0;transition:width .12s ease;box-shadow:0 0 6px #00dcff99}.np-enter-active[data-v-bea99702]{transition:opacity .1s}.np-leave-active[data-v-bea99702]{transition:opacity .25s}.np-enter-from[data-v-bea99702],.np-leave-to[data-v-bea99702]{opacity:0}.pwa-prompt[data-v-c40d7bfa]{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);left:12px;right:12px;background:var(--bg2);border:1px solid var(--brd2);border-radius:14px;padding:12px 14px;display:flex;align-items:center;gap:10px;z-index:9000;box-shadow:0 4px 24px #00000080}.pwa-icon[data-v-c40d7bfa]{flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--bg3);padding:2px}.pwa-text[data-v-c40d7bfa]{flex:1;min-width:0}.pwa-title[data-v-c40d7bfa]{font-size:13px;font-weight:700;color:var(--t1)}.pwa-sub[data-v-c40d7bfa]{font-size:10.5px;color:var(--t3);margin-top:2px}.pwa-btns[data-v-c40d7bfa]{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.pwa-install[data-v-c40d7bfa]{padding:5px 12px;border-radius:8px;background:var(--c0);border:none;color:#000;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff)}.pwa-dismiss[data-v-c40d7bfa]{padding:4px 8px;border-radius:8px;background:none;border:1px solid var(--brd);color:var(--t3);font-size:10.5px;cursor:pointer;font-family:var(--ff)}.pwa-update[data-v-c40d7bfa]{position:fixed;top:0;left:0;right:0;z-index:9001;background:var(--c0);color:#000;display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:600;font-family:var(--ff)}.pwa-update button[data-v-c40d7bfa]{margin-left:auto;padding:3px 10px;border-radius:6px;border:1.5px solid rgba(0,0,0,.3);background:#00000026;color:#000;cursor:pointer;font-size:11px;font-weight:700;font-family:var(--ff)}.pwa-update button.dismiss[data-v-c40d7bfa]{margin-left:4px;padding:3px 8px}.pwa-slide-enter-active[data-v-c40d7bfa],.pwa-slide-leave-active[data-v-c40d7bfa]{transition:all .25s ease}.pwa-slide-enter-from[data-v-c40d7bfa]{opacity:0;transform:translateY(16px)}.pwa-slide-leave-to[data-v-c40d7bfa]{opacity:0;transform:translateY(8px)}#app-root{min-height:100vh}.sys-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;font-size:12.5px;font-weight:500;animation:bannerDown .3s ease}@keyframes bannerDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.sys-banner.offline{background:var(--err);color:#fff}.sys-banner.update{background:linear-gradient(90deg,var(--c0),var(--c1));color:#070710}.banner-btn{padding:3px 10px;background:#0003;border:none;border-radius:5px;color:inherit;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff)}.banner-btn:hover{background:#00000059}.banner-close{background:none;border:none;cursor:pointer;opacity:.7;font-size:13px;padding:0 2px;line-height:1;font-family:var(--ff);color:inherit}.banner-close:hover{opacity:1}.is-twa{padding-top:env(safe-area-inset-top,0px)}:root{--c0: #00dcff;--c0a: rgba(0,220,255,.12);--c0b: rgba(0,220,255,.06);--c1: #7c5af0;--c1a: rgba(124,90,240,.12);--ok: #34d399;--oka: rgba(52,211,153,.1);--warn: #fbbf24;--warna: rgba(251,191,36,.1);--err: #f87171;--erra: rgba(248,113,113,.1);--info: #60a5fa;--infoa: rgba(96,165,250,.1);--bg: #070710;--bg2: #0d0d1c;--bg3: #12121f;--bg4: #181826;--bg5: #1e1e2e;--brd: rgba(255,255,255,.06);--brd2: rgba(255,255,255,.1);--brd3: rgba(255,255,255,.16);--t1: #e8edf5;--t2: #94a3b8;--t3: #3a4455;--t4: #1e293b;--topbar: 52px;--sidebar: 220px;--bnav: 56px;--r: 10px;--ff: "Plus Jakarta Sans", "DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--ffm: "JetBrains Mono", "Fira Code", "SF Mono", Menlo, monospace;--ffh: "Plus Jakarta Sans", "DM Sans", system-ui, sans-serif;--ffb: "Syne", var(--ff);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}[data-twa="1"]{--topbar: 44px;--bnav: calc(52px + var(--sab))}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%;overscroll-behavior:none;touch-action:pan-x pan-y}body{min-height:100%;background:var(--bg);color:var(--t1);font-family:var(--ff);font-size:15px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}p,h1,h2,h3,h4,span,div,code,pre,input,textarea,select,table,td,th{-webkit-user-select:text;user-select:text}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg5);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--bg4)}::selection{background:var(--c0a);color:var(--t1)}:focus-visible{outline:2px solid rgba(0,220,255,.45);outline-offset:2px;border-radius:5px}:focus:not(:focus-visible){outline:none}a{color:inherit;text-decoration:none}button{font-family:var(--ff);background:none;border:none;cursor:pointer}input,select,textarea{font-family:var(--ff)}img,svg{display:block}.text-grad{background:linear-gradient(135deg,var(--c0),var(--c1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mono{font-family:var(--ffm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}@media (max-width: 720px){.hide-mob{display:none!important}}@media (max-width: 720px){body{font-size:15px}}*{scroll-behavior:smooth}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.page-title{font-family:var(--ffh);font-size:18px;font-weight:800;color:var(--t1)}.page-sub{font-size:12px;color:var(--t2);margin-top:3px}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card{background:var(--bg2);border:1px solid var(--brd);border-radius:12px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--brd)}.card-title{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--t1)}.card-body{padding:14px}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--c0a);color:var(--c0);border:1px solid rgba(0,220,255,.2);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--ff);transition:.15s}.btn-primary:hover{background:#00dcff33}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--erra);color:var(--err);border:1px solid rgba(248,113,113,.2);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--ff);transition:.15s}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--bg3);color:var(--t2);border:1px solid var(--brd);border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--ff);transition:.15s}.btn-ghost:hover{background:var(--bg4);color:var(--t1)}.skeleton{animation:sk-pulse 1.5s ease infinite;background:var(--bg4);border-radius:6px}.skeleton-text{height:12px;width:60%}.skeleton-title{height:18px;width:40%}.skeleton-card{height:80px;border-radius:12px}@keyframes sk-pulse{0%,to{opacity:.35}50%{opacity:.65}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--t3);text-align:center}.empty-state svg{margin-bottom:12px;opacity:.3}.empty-state p{font-size:13px;margin-bottom:8px}.empty-state a{color:var(--c0);font-size:12px}.status-badge{display:inline-flex;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700}.status-badge.success{background:var(--oka);color:var(--ok)}.status-badge.error{background:var(--erra);color:var(--err)}.status-badge.warning{background:var(--warna);color:var(--warn)}.status-badge.idle{background:var(--bg4);color:var(--t3)}@media (hover: none){.bni:active,.qa:active,.proj-row:active,.log-row:active{background:var(--bg4);transform:scale(.98)}}.page-enter-active,.page-leave-active{transition:opacity .15s ease,transform .15s ease}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0;transform:translateY(-6px)}
