:root{--blue-1: #eef2ff;--blue-2: #d6e0ff;--blue-3: #adc0ff;--blue-4: #7f9bff;--blue-5: #4d70ff;--blue-6: #2d5cff;--blue-7: #1f45e6;--blue-8: #1636b8;--blue-9: #102a8f;--gray-1: #ffffff;--gray-2: #fafafa;--gray-3: #f5f5f5;--gray-4: #f0f0f0;--gray-5: #d9d9d9;--gray-6: #bfbfbf;--gray-7: #8c8c8c;--gray-8: #595959;--gray-9: #262626;--gray-10: #141414;--green-1: #f6ffed;--green-5: #73d13d;--green-6: #52c41a;--green-7: #389e0d;--gold-1: #fffbe6;--gold-5: #ffc53d;--gold-6: #faad14;--gold-7: #d48806;--red-1: #fff1f0;--red-5: #ff4d4f;--red-6: #f5222d;--red-7: #cf1322;--volcano-6: #fa541c;--purple-1: #f9f0ff;--purple-6: #722ed1;--cyan-1: #e6fffb;--cyan-6: #13c2c2;--magenta-6: #eb2f96;--gradient-primary: linear-gradient(310deg, #2d5cff 0%, #4d70ff 100%);--gradient-dark: linear-gradient(310deg, #141414 0%, #3a3a3a 100%);--gradient-success: linear-gradient(310deg, #389e0d 0%, #52c41a 100%);--gradient-warning: linear-gradient(310deg, #d48806 0%, #faad14 100%);--gradient-danger: linear-gradient(310deg, #cf1322 0%, #f5222d 100%);--color-primary: var(--blue-6);--color-primary-hover: var(--blue-5);--color-primary-active: var(--blue-7);--color-primary-bg: var(--blue-1);--text-heading: var(--gray-10);--text-body: #67748e;--text-secondary: var(--gray-8);--text-muted: var(--gray-7);--text-disabled: var(--gray-6);--text-inverse: var(--gray-1);--text-link: var(--blue-6);--text-link-hover: var(--blue-5);--surface-page: #fafafb;--surface-card: var(--gray-1);--surface-sunken: var(--gray-3);--surface-hover: var(--gray-2);--surface-inverse: var(--gray-10);--border-base: var(--gray-5);--border-subtle: var(--gray-4);--border-strong: var(--gray-6);--border-focus: var(--blue-6);--color-success: var(--green-6);--color-success-bg: var(--green-1);--color-warning: var(--gold-6);--color-warning-bg: var(--gold-1);--color-error: var(--red-6);--color-error-bg: var(--red-1);--color-info: var(--blue-6);--color-info-bg: var(--blue-1);--status-running: var(--blue-6);--status-running-bg: var(--blue-1);--status-success: var(--green-6);--status-success-bg: var(--green-1);--status-failed: var(--red-6);--status-failed-bg: var(--red-1);--status-queued: var(--gold-6);--status-queued-bg: var(--gold-1);--status-paused: var(--gray-7);--status-paused-bg: var(--gray-3)}:root{--font-sans: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;--fw-light: 300;--fw-regular: 400;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--fs-4xl: 38px;--fs-5xl: 46px;--fs-display: 60px;--lh-tight: 1.2;--lh-snug: 1.35;--lh-base: 1.5715;--lh-relaxed: 1.7;--ls-tight: -.01em;--ls-normal: 0;--ls-wide: .02em;--ls-caps: .08em}:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--control-sm: 24px;--control-md: 32px;--control-lg: 40px;--sidebar-width: 250px;--sidebar-collapsed: 80px;--header-height: 64px;--content-max: 1600px;--gutter: 24px}:root{--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-pill: 999px;--radius-round: 50%;--border-width: 1px;--border-width-strong: 2px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 2px 6px 0 rgba(0, 0, 0, .06);--shadow-md: 0 8px 16px -4px rgba(0, 0, 0, .08);--shadow-card: 0 20px 27px 0 rgba(0, 0, 0, .05);--shadow-lg: 0 12px 24px -6px rgba(0, 0, 0, .12);--shadow-xl: 0 20px 40px -8px rgba(0, 0, 0, .16);--shadow-focus: 0 0 0 2px rgba(24, 144, 255, .2);--shadow-icon: 0 4px 6px 0 rgba(24, 144, 255, .28);--ease-standard: cubic-bezier(.645, .045, .355, 1);--ease-out: cubic-bezier(.215, .61, .355, 1);--ease-in-out: cubic-bezier(.86, 0, .07, 1);--dur-fast: .15s;--dur-base: .3s;--dur-slow: .5s}@keyframes atlas-spin{to{transform:rotate(360deg)}}@keyframes atlas-pulse{0%,to{opacity:1}50%{opacity:.35}}:root{--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-decelerate: cubic-bezier(.05, .7, .1, 1);--dur-instant: .08s;--dur-slower: .7s;--transition-colors: color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), fill var(--dur-fast) var(--ease-standard);--transition-transform: transform var(--dur-base) var(--ease-emphasized);--transition-opacity: opacity var(--dur-base) var(--ease-standard);--transition-shadow: box-shadow var(--dur-base) var(--ease-standard);--transition-base: color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-emphasized)}@keyframes atlas-fade-in{0%{opacity:0}to{opacity:1}}@keyframes atlas-fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes atlas-fade-in-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes atlas-scale-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes atlas-slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes atlas-shimmer{0%{background-position:-150% 0}to{background-position:250% 0}}.atlas-animate-fade-in{animation:atlas-fade-in var(--dur-base) var(--ease-standard) both}.atlas-animate-fade-in-up{animation:atlas-fade-in-up var(--dur-slow) var(--ease-decelerate) both}.atlas-animate-scale-in{animation:atlas-scale-in var(--dur-base) var(--ease-emphasized) both}.atlas-stagger>*{animation:atlas-fade-in-up var(--dur-slow) var(--ease-decelerate) both}.atlas-stagger>*:nth-child(1){animation-delay:.04s}.atlas-stagger>*:nth-child(2){animation-delay:.1s}.atlas-stagger>*:nth-child(3){animation-delay:.16s}.atlas-stagger>*:nth-child(4){animation-delay:.22s}.atlas-stagger>*:nth-child(5){animation-delay:.28s}.atlas-stagger>*:nth-child(6){animation-delay:.34s}.atlas-skeleton{background:linear-gradient(100deg,var(--gray-3) 30%,var(--gray-2) 50%,var(--gray-3) 70%);background-size:200% 100%;animation:atlas-shimmer 1.4s var(--ease-in-out) infinite;border-radius:var(--radius-md)}@media(prefers-reduced-motion:reduce){.atlas-animate-fade-in,.atlas-animate-fade-in-up,.atlas-animate-scale-in,.atlas-stagger>*{animation:atlas-fade-in var(--dur-fast) var(--ease-standard) both}.atlas-skeleton{animation:none}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--text-heading: #f0f0f0;--text-body: #b8c0d0;--text-secondary: #d0d4dc;--text-muted: #8c93a1;--text-disabled: #5a6070;--surface-page: #0f1115;--surface-card: #171a20;--surface-sunken: #1e222a;--surface-hover: #22262f;--surface-inverse: #f0f0f0;--border-base: #2c313b;--color-primary: #5b7fff;--color-primary-hover: #7a97ff;--color-primary-active: #4d70ff;--color-primary-bg: #19203a;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 2px 6px 0 rgba(0, 0, 0, .35);--shadow-card: 0 20px 27px 0 rgba(0, 0, 0, .35);--shadow-lg: 0 12px 24px -6px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{color:var(--text-heading);font-weight:var(--fw-bold);line-height:var(--lh-tight);margin:0;text-wrap:balance}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover)}code,.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}button{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100%}.sidebar{background:var(--surface-card);border-right:var(--border-width) solid var(--border-base);padding:var(--space-6) var(--space-4);display:flex;flex-direction:column;gap:var(--space-6);position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--space-3)}.brand-mark{width:40px;height:40px;border-radius:var(--radius-xl);background:var(--gradient-primary);box-shadow:var(--shadow-icon);display:grid;place-items:center;flex:0 0 auto}.brand-name{font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--text-heading);letter-spacing:var(--ls-tight)}.brand-sub{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:var(--ls-caps);text-transform:uppercase;font-weight:var(--fw-semibold)}.nav-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--text-muted);font-weight:var(--fw-semibold);margin-bottom:var(--space-2)}.nav{display:flex;flex-direction:column;gap:var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:var(--text-body);border:none;background:none;cursor:pointer;text-align:left;width:100%;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.nav-item:hover{background:var(--surface-hover);color:var(--text-heading)}.nav-item[aria-current=page]{background:var(--color-primary-bg);color:var(--color-primary);font-weight:var(--fw-semibold)}.nav-item .glyph{width:28px;height:28px;border-radius:var(--radius-md);display:grid;place-items:center;flex:0 0 auto;background:var(--surface-sunken);font-size:13px}.nav-item[aria-current=page] .glyph{background:var(--gradient-primary);box-shadow:var(--shadow-icon);color:#fff}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--header-height);border-bottom:var(--border-width) solid var(--border-base);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);gap:var(--space-4);background:var(--surface-card)}.crumbs{font-size:var(--fs-sm);color:var(--text-muted)}.crumbs strong{color:var(--text-heading);font-weight:var(--fw-semibold)}.content{padding:var(--space-6) var(--gutter) var(--space-16);max-width:var(--content-max);width:100%}.page-head{margin-bottom:var(--space-6)}.page-head h1{font-size:var(--fs-2xl);margin-bottom:var(--space-1)}.page-head p{margin:0;color:var(--text-muted);font-size:var(--fs-sm);max-width:70ch}.card{background:var(--surface-card);border:var(--border-width) solid var(--border-base);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.card-head{padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-base);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card-head h2{font-size:var(--fs-md)}.card-head .hint{font-size:var(--fs-xs);color:var(--text-muted)}.card-body{padding:var(--space-5)}.card-body.tight{padding:0}.grid{display:grid;gap:var(--space-4)}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.grid.cols-2,.grid.cols-3{grid-template-columns:minmax(0,1fr)}.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}}.stat{padding:var(--space-5)}.stat .label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--text-muted);font-weight:var(--fw-semibold)}.stat .value{font-size:var(--fs-3xl);font-weight:var(--fw-bold);color:var(--text-heading);line-height:var(--lh-tight);margin-top:var(--space-2);font-variant-numeric:tabular-nums}.stat .foot{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--space-1)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);font-weight:var(--fw-semibold);padding:var(--space-3) var(--space-5);border-bottom:var(--border-width) solid var(--border-base);background:var(--surface-sunken);position:sticky;top:0;z-index:1;white-space:nowrap}table.data td{padding:var(--space-3) var(--space-5);border-bottom:var(--border-width) solid var(--border-base);color:var(--text-body);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover td{background:var(--surface-hover)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.cell-primary{color:var(--text-heading);font-weight:var(--fw-semibold)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill);border:var(--border-width) solid transparent;white-space:nowrap}.pill.neutral{color:var(--text-muted);background:var(--surface-sunken);border-color:var(--border-base)}.pill.info{color:var(--color-primary);background:var(--color-primary-bg);border-color:var(--blue-2)}.pill.ok{color:var(--green-7);background:var(--green-1);border-color:#52c41a59}.pill.warn{color:var(--gold-7);background:var(--gold-1);border-color:#faad1466}.pill.bad{color:var(--red-7);background:var(--red-1);border-color:#f5222d59}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.ok{color:var(--green-5);background:#52c41a1f}:root:not([data-theme=light]) .pill.warn{color:var(--gold-5);background:#faad141f}:root:not([data-theme=light]) .pill.bad{color:var(--red-5);background:#f5222d1f}:root:not([data-theme=light]) .pill.info{background:#5b7fff24;border-color:#5b7fff4d}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-4);border-radius:var(--radius-lg);border:var(--border-width) solid var(--border-base);background:var(--surface-card);color:var(--text-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--dur-fast) var(--ease-standard)}.btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:var(--shadow-icon)}.btn.primary:hover:not(:disabled){color:#fff;filter:brightness(1.06)}.btn.danger{color:var(--red-6)}.btn.danger:hover:not(:disabled){border-color:var(--red-6);color:var(--red-6)}.btn.sm{height:var(--control-sm);padding:0 var(--space-3);font-size:var(--fs-xs)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-heading)}.input{height:var(--control-lg);padding:0 var(--space-3);border-radius:var(--radius-lg);border:var(--border-width) solid var(--border-base);background:var(--surface-card);color:var(--text-heading);font-size:var(--fs-base);width:100%;transition:border-color var(--dur-fast) var(--ease-standard)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.input::placeholder{color:var(--text-disabled)}.muted{color:var(--text-muted)}.small{font-size:var(--fs-xs)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.empty{padding:var(--space-12) var(--space-5);text-align:center;color:var(--text-muted)}.empty .title{color:var(--text-heading);font-weight:var(--fw-semibold);margin-bottom:var(--space-2)}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:var(--border-width) solid;font-size:var(--fs-sm)}.banner.bad{color:var(--red-7);background:var(--red-1);border-color:#f5222d4d}.banner.warn{color:var(--gold-7);background:var(--gold-1);border-color:#faad1459}.banner.info{color:var(--color-primary);background:var(--color-primary-bg);border-color:var(--blue-2)}.rail{display:flex;gap:3px}.rail .seg{flex:1;height:6px;border-radius:var(--radius-xs);background:var(--surface-sunken)}.rail .seg.done{background:var(--green-6)}.rail .seg.stale{background:var(--gold-6)}.rail .seg.miss{background:var(--border-base)}.spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-base);border-top-color:var(--color-primary);animation:atlas-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:40;animation:fade-in var(--dur-fast) var(--ease-out)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface-card);border-left:var(--border-width) solid var(--border-base);box-shadow:var(--shadow-xl);z-index:41;overflow-y:auto;animation:slide-in var(--dur-base) var(--ease-out)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(16px);opacity:0}to{transform:none;opacity:1}}.signin{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:radial-gradient(1100px 520px at 50% -10%,color-mix(in srgb,var(--blue-6) 14%,transparent),transparent 70%),var(--surface-page)}.signin form,.signin>.card{width:min(392px,100%)}.signin .card{width:100%}.signin-mark{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.signin-mark .brand-name{font-size:var(--fs-xl)}.signin-foot{margin-top:var(--space-5);text-align:center;font-size:var(--fs-xs);color:var(--text-muted)}.signin .btn.primary{width:100%;justify-content:center;margin-top:var(--space-2)}.sub-panel{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3)}.clickable-card{font:inherit;color:inherit;width:100%;transition:var(--transition-colors),var(--transition-shadow)}.clickable-card:hover:not(:disabled){border-color:var(--blue-4);box-shadow:var(--shadow-card)}.clickable-card:disabled{opacity:.62}.preview{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3);font-size:var(--fs-xs);line-height:1.6;max-height:340px;overflow:auto;white-space:pre-wrap;word-break:break-word}.input.editor{min-height:320px;resize:vertical;font-size:var(--fs-xs);line-height:1.6;white-space:pre;overflow:auto}
