:root{--color-bg: #0a0a0f;--color-surface: #111118;--color-surface-2: #1a1a24;--color-surface-3: #22222e;--color-border: #2a2a38;--color-border-subtle: #1e1e2a;--color-text: #f0f0f8;--color-text-2: #9898b8;--color-text-3: #5a5a78;--color-accent: #7c6fff;--color-accent-dim: #4a42cc;--color-accent-glow: rgba(124, 111, 255, .15);--color-success: #22d3a3;--color-success-dim: rgba(34, 211, 163, .12);--color-warning: #f5a623;--color-warning-dim: rgba(245, 166, 35, .12);--color-danger: #f25c5c;--color-danger-dim: rgba(242, 92, 92, .12);--color-info: #38bdf8;--color-info-dim: rgba(56, 189, 248, .12);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 8px 32px rgba(0,0,0,.6);--shadow-accent: 0 0 24px rgba(124, 111, 255, .2);--duration-fast: .12s;--duration-normal: .2s;--ease-out: cubic-bezier(.16, 1, .3, 1);--sidebar-width: 240px;--topbar-height: 56px;--content-max: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);line-height:1.5;min-height:100vh}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-3)}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-logo{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo .logo-mark{width:28px;height:28px;background:var(--color-accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-bold);font-size:var(--text-sm);color:#fff;letter-spacing:-.5px}.sidebar-logo .logo-name{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.3px}.sidebar-nav{flex:1;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto}.sidebar-section{margin-top:var(--space-4);margin-bottom:var(--space-2);padding:0 var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-3);text-transform:uppercase;letter-spacing:.08em}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-2);transition:background var(--duration-fast),color var(--duration-fast);font-weight:var(--weight-medium)}.nav-link:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}.nav-link.active{background:var(--color-accent-glow);color:var(--color-accent)}.nav-link .nav-icon{width:16px;height:16px;opacity:.8}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column;padding-bottom:36px}.page{flex:1;padding:var(--space-8);max-width:var(--content-max);width:100%}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.5px}.page-subtitle{margin-top:var(--space-1);color:var(--color-text-2)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.card-sm{padding:var(--space-4)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-3);text-transform:uppercase;letter-spacing:.08em}.stat-value{margin-top:var(--space-2);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.5px}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:var(--weight-medium);font-size:var(--text-sm);border:none;transition:background var(--duration-fast),transform var(--duration-fast),box-shadow var(--duration-fast);white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-dim);box-shadow:var(--shadow-accent)}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-3)}.btn-danger{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid transparent}.btn-danger:hover{background:var(--color-danger);color:#fff}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border)}table{width:100%;border-collapse:collapse}thead th{background:var(--color-surface-2);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-3);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}tbody tr{border-top:1px solid var(--color-border-subtle);transition:background var(--duration-fast)}tbody tr:hover{background:var(--color-surface-2)}tbody td{padding:var(--space-3) var(--space-4);color:var(--color-text);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.badge-success{background:var(--color-success-dim);color:var(--color-success)}.badge-warning{background:var(--color-warning-dim);color:var(--color-warning)}.badge-danger{background:var(--color-danger-dim);color:var(--color-danger)}.badge-info{background:var(--color-info-dim);color:var(--color-info)}.badge-neutral{background:var(--color-surface-3);color:var(--color-text-2)}.badge-accent{background:var(--color-accent-glow);color:var(--color-accent)}.form-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-2)}.form-input{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--color-text);outline:none;transition:border-color var(--duration-fast);width:100%}.form-input:focus{border-color:var(--color-accent)}.form-input::placeholder{color:var(--color-text-3)}.timeline{display:flex;flex-direction:column;gap:0;position:relative}.timeline-item{display:flex;gap:var(--space-4);position:relative;padding-bottom:var(--space-4)}.timeline-item:last-child{padding-bottom:0}.timeline-connector{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.timeline-dot{width:28px;height:28px;border-radius:var(--radius-full);border:2px solid var(--color-border);background:var(--color-surface-2);display:flex;align-items:center;justify-content:center;font-size:10px;z-index:1;flex-shrink:0}.timeline-dot.completed{border-color:var(--color-success);background:var(--color-success-dim);color:var(--color-success)}.timeline-dot.running{border-color:var(--color-accent);background:var(--color-accent-glow);color:var(--color-accent)}.timeline-dot.failed,.timeline-dot.dead_letter{border-color:var(--color-danger);background:var(--color-danger-dim);color:var(--color-danger)}.timeline-line{width:2px;flex:1;background:var(--color-border-subtle);min-height:var(--space-4)}.timeline-content{flex:1;padding-top:var(--space-1)}.timeline-title{font-weight:var(--weight-medium);font-size:var(--text-sm)}.timeline-meta{font-size:var(--text-xs);color:var(--color-text-3);margin-top:var(--space-1)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:flex;align-items:center;justify-content:center;min-height:300px;gap:var(--space-3);color:var(--color-text-2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-3);gap:var(--space-4)}.empty-state-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-2)}.actions-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.actions-row-left{display:flex;align-items:center;gap:var(--space-3)}.error-banner{background:var(--color-danger-dim);border:1px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--color-danger);font-size:var(--text-sm);margin-bottom:var(--space-4)}.login-shell{position:relative;min-height:100vh;display:grid;place-items:center;padding:var(--space-8) var(--space-6);overflow:hidden;background:var(--color-bg);isolation:isolate}.login-atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1}.login-glow{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(80px);opacity:.55;will-change:transform}.login-glow-1{top:-180px;left:-140px;background:radial-gradient(circle at center,var(--color-accent-glow),transparent 70%);animation:login-drift-a 18s ease-in-out infinite alternate}.login-glow-2{bottom:-220px;right:-160px;width:620px;height:620px;background:radial-gradient(circle at center,rgba(100,160,255,.14),transparent 70%);animation:login-drift-b 22s ease-in-out infinite alternate}@keyframes login-drift-a{0%{transform:translateZ(0)}to{transform:translate3d(60px,40px,0)}}@keyframes login-drift-b{0%{transform:translateZ(0)}to{transform:translate3d(-80px,-50px,0)}}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.025) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at center,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at center,black 40%,transparent 80%)}.login-card{position:relative;width:100%;max-width:420px;padding:var(--space-10) var(--space-8);display:flex;flex-direction:column;gap:var(--space-6);background:color-mix(in oklab,var(--color-surface) 82%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-xl);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:var(--shadow-lg),0 0 0 1px #ffffff05 inset,var(--shadow-accent);color:var(--color-text);animation:login-card-in .6s var(--ease-out) both}@keyframes login-card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-brand{display:flex;align-items:center;gap:var(--space-3)}.login-brand-mark{width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dim));display:grid;place-items:center;font-weight:var(--weight-bold);font-size:var(--text-base);color:#fff;letter-spacing:-.5px;box-shadow:var(--shadow-accent)}.login-brand-name{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.3px;color:var(--color-text)}.login-copy{display:flex;flex-direction:column;gap:var(--space-2)}.login-title{font-size:var(--text-3xl, 2rem);font-weight:var(--weight-bold);letter-spacing:-.8px;color:var(--color-text);line-height:1.1}.login-subtitle{font-size:var(--text-sm);color:var(--color-text-2);line-height:1.55}.login-error{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger-dim);border:1px solid color-mix(in oklab,var(--color-danger) 55%,transparent);color:var(--color-danger)}.login-error-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-danger)}.login-error-body{font-size:var(--text-xs);color:color-mix(in oklab,var(--color-danger) 82%,var(--color-text));line-height:1.5}.login-google-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);width:100%;border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);font-weight:var(--weight-medium);font-size:var(--text-sm);transition:background var(--duration-fast),border-color var(--duration-fast),transform var(--duration-fast),box-shadow var(--duration-fast)}.login-google-btn:hover{background:var(--color-surface-3);border-color:color-mix(in oklab,var(--color-accent) 45%,var(--color-border));box-shadow:var(--shadow-accent);color:var(--color-text)}.login-google-btn:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.login-google-btn:active{transform:scale(.98)}.login-google-btn svg{flex-shrink:0}.login-fineprint{font-size:var(--text-xs);color:var(--color-text-3);line-height:1.55;text-align:center}@media (prefers-reduced-motion: reduce){.login-glow-1,.login-glow-2,.login-card{animation:none}}
