:root{--canvas:#0a0b0f;--surface:#12141a;--surface-raised:#1a1d25;--surface-interactive:#22252e;--ink:#e8e9ed;--ink-secondary:#b8bbc5;--ink-muted:#888b96;--ink-subtle:#565964;--line:#2a2d36;--line-strong:#3a3d46;--accent:#d4965b;--accent-dark:#b8804a;--accent-subtle:#d4965b26;--status-queued-bg:#2a2619;--status-queued-ink:#d4965b;--status-running-bg:#1a2329;--status-running-ink:#5ba8d4;--status-success-bg:#1a2920;--status-success-ink:#5bd493;--status-warning-bg:#2a2319;--status-warning-ink:#d4b35b;--status-error-bg:#2a1a1a;--status-error-ink:#d45b5b;--status-inactive-bg:#1f1f1f;--status-inactive-ink:#888b96;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", monospace;--font-display:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--ease:cubic-bezier(.23, 1, .32, 1);--ease-bounce:cubic-bezier(.68, -.55, .265, 1.55);--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}html,body,#root{background:var(--canvas);height:100%;min-height:100%;color:var(--ink);font-family:var(--font-sans);margin:0}body{font-size:.875rem;font-weight:400;line-height:1.5;overflow-x:hidden}#root{min-height:100dvh}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.3}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}a{color:var(--accent);transition:color .15s var(--ease);text-decoration:none}a:hover{color:var(--accent-dark)}button,input,select{font:inherit;border-radius:var(--radius-md)}button{cursor:pointer;background:var(--accent);color:var(--canvas);border:1px solid var(--accent);padding:var(--space-sm) var(--space-lg);transition:all .2s var(--ease);font-size:.875rem;font-weight:500;position:relative;overflow:hidden}button:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px #d4965b4d}button:active:not(:disabled){transform:translateY(0)}button.secondary{background:var(--surface-interactive);color:var(--ink);border-color:var(--line)}button.secondary:hover:not(:disabled){background:var(--surface-raised);border-color:var(--line-strong);box-shadow:0 2px 8px #0003}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}input,select{background:var(--surface-interactive);color:var(--ink);border:1px solid var(--line);padding:var(--space-sm) var(--space-md);width:100%;transition:all .15s var(--ease)}input:focus,select:focus{border-color:var(--accent);background:var(--surface-raised);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}input::placeholder{color:var(--ink-muted)}.app-shell{background:var(--canvas);grid-template-columns:280px minmax(0,1fr);height:100dvh;max-height:100dvh;display:grid;overflow:hidden}.rail{background:var(--surface);border-right:1px solid var(--line);height:100%;max-height:100dvh;padding:var(--space-2xl) var(--space-xl);gap:var(--space-2xl);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.rail:before{content:"";background:linear-gradient(180deg, transparent 0%, var(--line) 20%, var(--line) 80%, transparent 100%);width:1px;height:100%;position:absolute;top:0;right:0}.mark{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.125rem;font-weight:700;line-height:1.2}.mark-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.mark-brand{line-height:1.2}.env-badge{font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--radius-sm);border:1px solid var(--line);padding:.125rem .4375rem;font-size:.625rem;font-weight:600;line-height:1.2}.env-badge-dev{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.env-badge-prod{color:#b45309;background:#fffbeb;border-color:#fcd34d}.env-badge-local{color:var(--ink-secondary);background:var(--surface-interactive)}.mark>span{color:var(--accent);font-family:var(--font-mono);letter-spacing:.05em;margin-top:var(--space-xs);opacity:.9;font-size:.75rem;font-weight:500;display:block}nav{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}nav a{font-family:var(--font-sans);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);transition:all .2s var(--ease);color:var(--ink-secondary);font-size:.875rem;font-weight:500;position:relative}nav a:hover{background:var(--surface-interactive);color:var(--ink)}nav a.active{background:var(--accent-subtle);color:var(--accent);border-left:2px solid var(--accent);padding-left:calc(var(--space-lg) - 2px)}.rail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex}.rail-close{flex-shrink:0;width:2rem;height:2rem;padding:0;font-size:1.25rem;line-height:1;display:none}.nav-toggle{top:var(--space-md);left:var(--space-md);z-index:1100;width:2.5rem;height:2.5rem;padding:0;font-size:1.125rem;line-height:1;display:none;position:fixed}.nav-backdrop{z-index:1150;cursor:pointer;color:#0000;appearance:none;background:#000000a6;border:none;border-radius:0;margin:0;padding:0;display:none;position:fixed;inset:0}.nav-backdrop:hover:not(:disabled),.nav-backdrop:active:not(:disabled){color:#0000;box-shadow:none;background:#000000a6;border-color:#0000;transform:none}.nav-toggle:hover:not(:disabled),.nav-toggle:active:not(:disabled),.rail-close:hover:not(:disabled),.rail-close:active:not(:disabled){box-shadow:none;transform:none}.rail-footer{gap:var(--space-md);flex-direction:column;margin-top:auto;display:flex}.user-card{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;box-shadow:inset 0 1px #ffffff08}.user-card-avatar{border-radius:var(--radius-md);background:var(--accent-subtle);width:2.25rem;height:2.25rem;color:var(--accent);font-family:var(--font-display);letter-spacing:-.02em;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}.user-card-body{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.user-card-email{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;line-height:1.3;overflow:hidden}.user-card-role{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-subtle);padding:.125rem var(--space-sm);border-radius:var(--radius-sm);align-self:flex-start;font-size:.6875rem;font-weight:500}.logout-btn{width:100%}.workspace{padding:var(--space-2xl);background:var(--canvas);-webkit-overflow-scrolling:touch;min-width:0;height:100%;min-height:0;overflow:hidden auto}.meta{font-family:var(--font-mono);color:var(--ink-muted);font-size:.75rem}.table-wrap{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 3px #0000001a}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;padding:var(--space-lg) var(--space-md);border-bottom:1px solid var(--line);vertical-align:middle}th{font-family:var(--font-sans);color:var(--ink-muted);background:var(--surface);border-bottom:2px solid var(--line);z-index:1;font-size:.75rem;font-weight:600;position:sticky;top:0}td{color:var(--ink-secondary);transition:background .15s var(--ease)}tr:hover td{background:var(--surface-interactive)}tr:last-child td{border-bottom:none}.table-wrap-pending tr:hover td{background:0 0}.skeleton-row td{padding-top:var(--space-md);padding-bottom:var(--space-md)}.skeleton-bar{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-interactive) 0%, var(--line-strong) 50%, var(--surface-interactive) 100%);background-size:200% 100%;height:.75rem;animation:1.2s ease-in-out infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chip{font-family:var(--font-sans);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);align-items:center;gap:var(--space-xs);font-size:.75rem;font-weight:500;display:inline-flex;position:relative}.chip:before{content:"";opacity:.8;background:currentColor;border-radius:50%;width:6px;height:6px}.chip-queued{background:var(--status-queued-bg);color:var(--status-queued-ink)}.chip-running{background:var(--status-running-bg);color:var(--status-running-ink)}.chip-running:before{animation:2s ease-in-out infinite pulse}.chip-completed{background:var(--status-success-bg);color:var(--status-success-ink)}.chip-completed_with_errors{background:var(--status-warning-bg);color:var(--status-warning-ink)}.chip-failed,.chip-timed_out{background:var(--status-error-bg);color:var(--status-error-ink)}.chip-skipped{background:var(--status-inactive-bg);color:var(--status-inactive-ink)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.login{min-height:100dvh;padding:var(--space-2xl);background:linear-gradient(135deg, var(--canvas) 0%, var(--surface) 100%);place-items:center;display:grid}.login-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(420px,100%);padding:var(--space-3xl) var(--space-2xl);box-shadow:0 8px 32px #0000004d}.login-card h1{font-family:var(--font-display);margin-bottom:var(--space-sm);color:var(--ink);text-align:center;font-size:1.5rem;font-weight:600}.login-card p{color:var(--ink-muted);margin:0 0 var(--space-2xl);text-align:center;line-height:1.6}.stack{gap:var(--space-lg);flex-direction:column;display:flex}.row{gap:var(--space-md);flex-wrap:wrap;align-items:end;display:flex}.field{flex:1;min-width:200px}label{font-family:var(--font-sans);color:var(--ink-secondary);margin-bottom:var(--space-sm);font-size:.875rem;font-weight:500;display:block}.error{color:var(--status-error-ink);margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--status-error-bg);border-radius:var(--radius-sm);border-left:3px solid var(--status-error-ink);font-size:.875rem}.json{font-family:var(--font-mono);background:var(--surface-interactive);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-lg);max-height:24rem;color:var(--ink-secondary);font-size:.75rem;line-height:1.6;overflow:auto}.json-static{white-space:pre-wrap;word-break:break-word;max-height:none;margin:0;overflow:visible}.json-panel{gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.json-panel-actions{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.copy-feedback{font-family:var(--font-mono);color:var(--status-success-ink);font-size:.75rem}.snapshot-filters{align-items:flex-end}.table-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.invite-form{align-items:flex-end;width:100%}.section-title{color:var(--ink);margin-bottom:var(--space-xs);font-size:.875rem;font-weight:600}.section-hint{color:var(--ink-muted);margin:0 0 var(--space-md);font-size:.8125rem}.filter-section{margin-bottom:var(--space-xl)}.list-header{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.list-header h1,.page-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.5rem,4vw,2rem);font-weight:600}.page-title{margin-bottom:var(--space-lg)}.list-header-actions{justify-content:flex-end;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.last-refreshed{color:var(--ink-muted);margin:0;font-size:.8125rem}.filters-title,.filter-section .section-hint{grid-column:1/-1;margin-bottom:0}.loading-note,.empty-note{color:var(--ink-muted);margin:var(--space-md) 0;font-size:.875rem}.filters{gap:var(--space-lg);padding:var(--space-xl);background:var(--surface-raised);border-radius:var(--radius-lg);border:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.filter-section .filters{margin-bottom:0}.filters-inline{display:block}.field-inline{align-items:center;gap:var(--space-md);grid-template-columns:auto 1fr;width:100%;min-width:0;display:grid}.field-inline label{white-space:nowrap;margin-bottom:0}.filters-inline .field-inline{min-width:unset}.meta-grid{gap:var(--space-md);padding:var(--space-lg);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.meta-item{gap:var(--space-xs);flex-direction:column;display:flex}.meta-item dt{color:var(--ink-muted);font-size:.75rem;font-weight:500}.meta-item dd{color:var(--ink-secondary);font-family:var(--font-mono);word-break:break-all;margin:0;font-size:.8125rem}.modal-backdrop{z-index:1000;padding:var(--space-lg);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{width:min(32rem,100%);max-height:calc(100vh - (2 * var(--space-lg)));background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;min-width:0;margin:auto;display:flex;box-shadow:0 16px 48px #0006}.modal-panel-wide{width:min(48rem,100%)}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--line);flex-shrink:0;display:flex}.modal-header h2{padding-right:var(--space-md);font-size:1.125rem}.modal-close{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:2rem;height:2rem;color:var(--ink-muted);cursor:pointer;flex-shrink:0;padding:0;font-size:1.25rem;line-height:1}.modal-close:hover{color:var(--ink);background:var(--surface-interactive);box-shadow:none;transform:none}.modal-body{padding:var(--space-xl);gap:var(--space-lg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.modal-panel-wide .modal-body{max-height:calc(100vh - 7rem)}.choice-group{justify-content:space-between;align-items:center;gap:var(--space-md);border:0;flex-wrap:wrap;width:100%;min-width:0;margin:0;padding:0;display:flex}.choice-group-label{color:var(--ink-secondary);font-size:.875rem;font-weight:500}.choice-group-options{gap:var(--space-md);flex-wrap:wrap;display:flex}.choice-group label{align-items:center;gap:var(--space-sm);cursor:pointer;margin-bottom:0;display:inline-flex}.chip-list{gap:var(--space-sm);flex-wrap:wrap;min-height:2rem;display:flex}.loc-chip{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--surface-interactive);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.75rem;display:inline-flex}.loc-chip button{padding:0 var(--space-xs);min-width:unset;color:var(--ink-muted);background:0 0;border:none;font-size:.75rem;line-height:1}.loc-chip button:hover{color:var(--status-error-ink);box-shadow:none;transform:none}.modal-actions{justify-content:flex-end;gap:var(--space-md);display:flex}.pagination{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.pagination-range{color:var(--ink-muted);margin:0;font-size:.8125rem}.pagination-actions{gap:var(--space-sm);display:flex}@media (width<=1024px){.app-shell{grid-template-columns:1fr}.nav-toggle{justify-content:center;align-items:center;display:inline-flex}.rail{z-index:1200;width:min(280px,88vw);height:100dvh;max-height:100dvh;padding:var(--space-xl) var(--space-lg);align-items:stretch;gap:var(--space-2xl);border-right:1px solid var(--line);transition:transform .22s var(--ease);box-shadow:none;border-bottom:none;flex-direction:column;position:fixed;inset:0 auto 0 0;overflow:hidden;transform:translate(-100%)}.rail:before{display:none}.app-shell.nav-open .rail{transform:translate(0)}.app-shell.nav-open .nav-backdrop{display:block}.app-shell.nav-open .workspace{overflow:hidden}.rail-close{justify-content:center;align-items:center;display:inline-flex}.rail-header{flex-shrink:0}nav{flex-direction:column;flex:1;min-height:0;overflow-y:auto}nav a{white-space:normal;padding:var(--space-md) var(--space-lg);font-size:.875rem}.rail-footer{flex-direction:column;flex-shrink:0;margin-top:auto;margin-left:0}.user-card{max-width:none}.logout-btn{width:100%}.workspace{padding:var(--space-xl);padding-top:calc(var(--space-xl) + 2.75rem)}}@media (width<=768px){.workspace{padding:var(--space-lg);padding-top:calc(var(--space-lg) + 2.75rem)}.filters{padding:var(--space-lg);grid-template-columns:1fr}.row{flex-direction:column;align-items:stretch}.field{min-width:unset}.table-wrap{overflow-x:auto}th,td{padding:var(--space-sm);font-size:.75rem}}@media (width<=480px){.login{padding:var(--space-lg)}.login-card{padding:var(--space-2xl) var(--space-lg)}.workspace,.filters{padding:var(--space-md)}.rail{padding:var(--space-lg) var(--space-md);gap:var(--space-xl)}.mark{font-size:1rem}.mark span{font-size:.675rem}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}.loading{animation:1s linear infinite spin}
