.menu-page[data-v-074c567e]{max-width:860px}.menu-header[data-v-074c567e]{margin-bottom:28px;padding-bottom:16px;border-bottom:2px solid var(--navy)}.menu-header h1[data-v-074c567e]{font-size:22px;font-weight:600;color:var(--navy)}.subtitle[data-v-074c567e]{margin-top:4px;color:var(--text-muted);font-size:13px}.menu-grid[data-v-074c567e]{display:grid;gap:12px}.menu-grid.cols-1[data-v-074c567e]{grid-template-columns:1fr}.menu-grid.cols-2[data-v-074c567e]{grid-template-columns:1fr 1fr}.menu-grid.cols-3[data-v-074c567e]{grid-template-columns:1fr 1fr 1fr}.menu-footer[data-v-074c567e]{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);display:flex;gap:12px;flex-wrap:wrap}@media (max-width: 600px){.menu-grid.cols-2[data-v-074c567e],.menu-grid.cols-3[data-v-074c567e]{grid-template-columns:1fr}}.menu-card[data-v-2d44a173]{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--navy);cursor:pointer;transition:all .15s;text-align:left;width:100%;box-shadow:var(--shadow-sm)}.menu-card[data-v-2d44a173]:hover{background:var(--ice);border-color:var(--navy-light);box-shadow:var(--shadow);transform:translateY(-1px)}.menu-card.stub[data-v-2d44a173]{border-style:dashed;opacity:.8}.menu-card.stub[data-v-2d44a173]:hover{opacity:1}.menu-card-icon[data-v-2d44a173]{font-size:18px}.menu-card-label[data-v-2d44a173]{flex:1}.menu-card-arrow[data-v-2d44a173]{color:var(--text-muted);font-size:16px;transition:transform .15s}.menu-card:hover .menu-card-arrow[data-v-2d44a173]{transform:translate(3px)}.steps-table[data-v-c836d26e]{overflow:hidden}.step-row[data-v-c836d26e]{display:flex;align-items:center;gap:16px;padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s}.step-row[data-v-c836d26e]:last-child{border-bottom:none}.step-row[data-v-c836d26e]:hover{background:var(--ice)}.step-num[data-v-c836d26e]{width:56px;font-weight:600;color:var(--navy);font-size:13px;flex-shrink:0}.step-label[data-v-c836d26e]{flex:1;font-size:14px;color:var(--text)}.step-arrow[data-v-c836d26e]{color:var(--text-muted);transition:transform .12s}.step-row:hover .step-arrow[data-v-c836d26e]{transform:translate(4px)}.run-job-page[data-v-e1cb3b02]{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.instruction-banner[data-v-e1cb3b02]{background:var(--white);border:1px solid var(--border);border-left:4px solid var(--navy);border-radius:var(--radius-sm);padding:14px 18px;font-size:14px;color:var(--text);line-height:1.5}.job-controls[data-v-e1cb3b02]{display:flex;align-items:center;gap:14px}.job-label[data-v-e1cb3b02]{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap}.job-select[data-v-e1cb3b02]{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);color:var(--text);background:var(--white);cursor:pointer}.job-select[data-v-e1cb3b02]:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 2px #27225d1f}.run-btn[data-v-e1cb3b02]{align-self:flex-start;padding:8px 24px;font-size:14px}.run-btn[data-v-e1cb3b02]:disabled{opacity:.5;cursor:not-allowed}.status-area[data-v-e1cb3b02]{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;line-height:1.5}.status-running[data-v-e1cb3b02]{background:#fef9e7;border:1px solid #f0d27a;color:#7d6608}.status-success[data-v-e1cb3b02]{background:#eafaf1;border:1px solid #82e0aa;color:#1e8449}.status-error[data-v-e1cb3b02]{background:#fdedec;border:1px solid #f1948a;color:#922b21}.stub-page[data-v-39e8ab74]{max-width:560px;margin:60px auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.stub-badge[data-v-39e8ab74]{background:var(--ice);border:1px solid var(--border);border-radius:20px;padding:4px 14px;font-size:12px;color:var(--text-muted);font-weight:500}h1[data-v-39e8ab74]{font-size:24px;font-weight:600;color:var(--navy)}p[data-v-39e8ab74]{color:var(--text-muted);line-height:1.6}code[data-v-39e8ab74]{font-family:var(--font-mono);font-size:12px;background:var(--ice);padding:2px 6px;border-radius:3px;color:var(--navy)}.login-page[data-v-56c3d70e]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ice);padding:24px}.login-card[data-v-56c3d70e]{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 36px 32px;width:100%;max-width:400px}.login-brand[data-v-56c3d70e]{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:28px}.login-brand .brand-icon[data-v-56c3d70e]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--navy);color:var(--white);font-weight:700;font-size:16px;border-radius:var(--radius-sm);letter-spacing:-.5px}.login-brand h1[data-v-56c3d70e]{font-size:22px;font-weight:700;color:var(--navy);margin:0}.login-brand h1 em[data-v-56c3d70e]{font-style:normal;opacity:.55;font-weight:400}.login-heading[data-v-56c3d70e]{font-size:15px;font-weight:600;color:var(--text-muted);text-align:center;margin-bottom:24px}.login-form[data-v-56c3d70e]{display:flex;flex-direction:column;gap:16px}.form-row[data-v-56c3d70e]{display:flex;align-items:center;gap:12px}.form-row label[data-v-56c3d70e]{width:90px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--text);text-align:left}.form-row input[data-v-56c3d70e]{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);color:var(--text);transition:border-color .15s}.form-row input[data-v-56c3d70e]:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 2px #27225d1f}.error-msg[data-v-56c3d70e]{color:var(--danger);font-size:13px;text-align:center;margin:0}.login-btn[data-v-56c3d70e]{align-self:center;padding:8px 32px;font-size:14px;margin-top:4px}.login-links[data-v-56c3d70e]{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:24px}.login-links a[data-v-56c3d70e]{font-size:12px;color:var(--accent);cursor:pointer}.login-links a[data-v-56c3d70e]:hover{text-decoration:underline}.sidebar-backdrop[data-v-299427dd]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:199}.sidebar[data-v-299427dd]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--navy);display:flex;flex-direction:column;z-index:200;transition:width .2s ease,transform .2s ease;overflow:hidden}.sidebar.collapsed[data-v-299427dd]{width:var(--sidebar-w-collapsed)}.sidebar-brand[data-v-299427dd]{display:flex;align-items:center;gap:10px;padding:16px;color:var(--white);font-size:15px;font-weight:600;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.1);min-height:56px}.brand-icon[data-v-299427dd]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;font-weight:700;font-size:16px;letter-spacing:-.5px}.brand-text em[data-v-299427dd]{font-style:normal;opacity:.65;font-weight:400}.sidebar-nav[data-v-299427dd]{flex:1;display:flex;flex-direction:column;padding:8px;gap:2px;overflow-y:auto}.nav-item[data-v-299427dd]{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:var(--radius-sm);color:#ffffffb3;font-size:13px;white-space:nowrap;transition:all .15s;background:none;border:none;width:100%;text-align:left;cursor:pointer}.nav-item[data-v-299427dd]:hover{color:var(--white);background:#ffffff1a}.nav-item.active[data-v-299427dd]{color:var(--white);background:#ffffff26}.nav-icon[data-v-299427dd]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px}.nav-label[data-v-299427dd]{overflow:hidden;text-overflow:ellipsis}.sidebar-footer[data-v-299427dd]{padding:8px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:2px}.logout-btn[data-v-299427dd]{font-family:var(--font-body)}.collapse-toggle[data-v-299427dd]{display:flex;align-items:center;justify-content:center;padding:8px;color:#ffffff80;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.collapse-toggle[data-v-299427dd]:hover{color:var(--white);background:#ffffff1a}@media (max-width: 768px){.sidebar[data-v-299427dd]{transform:translate(-100%)}.sidebar.mobile-open[data-v-299427dd]{transform:translate(0)}.sidebar.collapsed[data-v-299427dd]{width:var(--sidebar-w)}.collapse-toggle[data-v-299427dd]{display:none}}.sidebar-backdrop-enter-active[data-v-299427dd],.sidebar-backdrop-leave-active[data-v-299427dd]{transition:opacity .2s}.sidebar-backdrop-enter-from[data-v-299427dd],.sidebar-backdrop-leave-to[data-v-299427dd]{opacity:0}.breadcrumb[data-v-39d7f35a]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);flex-wrap:wrap}.separator[data-v-39d7f35a]{color:var(--border);font-size:12px}.crumb-link[data-v-39d7f35a]{color:var(--navy);transition:color .15s}.crumb-link[data-v-39d7f35a]:hover{color:var(--navy-light);text-decoration:underline}.crumb-current[data-v-39d7f35a]{color:var(--text-muted);font-weight:500}.app-header[data-v-5b7ce0ed]{height:var(--nav-h);background:var(--white);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:12px;flex-shrink:0}.hamburger[data-v-5b7ce0ed]{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--navy);padding:4px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.hamburger[data-v-5b7ce0ed]:hover{background:var(--ice)}@media (max-width: 768px){.hamburger[data-v-5b7ce0ed]{display:flex}}.app-shell[data-v-2ab4837b]{display:flex;min-height:100vh}.app-main[data-v-2ab4837b]{flex:1;display:flex;flex-direction:column;margin-left:var(--sidebar-w);transition:margin-left .2s ease;min-width:0}.app-main.sidebar-collapsed[data-v-2ab4837b]{margin-left:var(--sidebar-w-collapsed)}.app-main.no-sidebar[data-v-2ab4837b]{margin-left:0}.page-content[data-v-2ab4837b]{flex:1;padding:28px 32px;max-width:1100px;width:100%;margin:0 auto}code[data-v-2ab4837b]{font-family:var(--font-mono);font-size:12px;background:var(--ice);padding:2px 6px;border-radius:3px;color:var(--navy)}@media (max-width: 768px){.app-main[data-v-2ab4837b],.app-main.sidebar-collapsed[data-v-2ab4837b]{margin-left:0}}:root{--navy: #27225D;--navy-dark: #1a1840;--navy-light: #3a3480;--silver: #888892;--ice: #EFF3FB;--white: #ffffff;--text: #1e1e2e;--text-muted: #6b6b80;--border: #d0d4e8;--danger: #c0392b;--success: #27ae60;--accent: #4a90e2;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(39,34,93,.1);--shadow: 0 4px 16px rgba(39,34,93,.12);--shadow-lg: 0 8px 32px rgba(39,34,93,.18);--font-body: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--nav-h: 48px;--sidebar-w: 220px;--sidebar-w-collapsed: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--ice);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:13px;font-weight:500;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--navy);color:var(--white);border-color:var(--navy)}.btn-primary:hover{background:var(--navy-dark)}.btn-secondary{background:var(--white);color:var(--navy);border-color:var(--border)}.btn-secondary:hover{background:var(--ice)}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#27225d66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px;max-width:480px;width:90%;position:relative}.modal-box h2{font-size:18px;font-weight:600;color:var(--navy);margin-bottom:12px}.modal-box p{color:var(--text-muted);line-height:1.6;margin-bottom:20px}.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;line-height:1}.modal-close:hover{color:var(--text)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}
