*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:Space Grotesk,Manrope,Segoe UI,sans-serif;line-height:1.5;background:radial-gradient(900px 500px at 10% 0%,#f7f2e9 0%,transparent 60%),radial-gradient(700px 420px at 90% 10%,#eef4f5 0%,transparent 55%),#f6f4ef;color:#1b242a}#root{min-height:100%}:root{--panel: #ffffff;--border: #e0d9cc;--muted: #6d7b80;--accent: #117a65;--accent-strong: #0c5c4d;--shadow: 0 10px 30px rgba(23, 40, 44, .08)}.app-nav{position:sticky;top:0;z-index:20;display:flex;gap:10px;padding:12px 24px 0;background:linear-gradient(180deg,#f6f4eff5,#f6f4ef00);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.page{display:none}.page.page-active{display:block}.nav-btn{border:1px solid var(--border);background:var(--panel);border-radius:999px;padding:6px 14px;cursor:pointer;font-size:13px;color:#1f2a2e;box-shadow:var(--shadow)}.nav-btn.nav-active{background:var(--accent);color:#fff;border-color:transparent}.app-footer{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding:0 24px 24px;color:var(--muted);font-size:12px}.app-footer a{color:var(--accent-strong);text-decoration:none}.app-footer a:hover{text-decoration:underline}.app-shell{min-height:100%;padding:20px 24px 40px;display:flex;flex-direction:column;gap:20px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.brand-title{font-size:26px;font-weight:700;letter-spacing:-.02em}.brand-sub{font-size:12px;text-transform:uppercase;letter-spacing:.24em;color:var(--muted)}.status-cluster{display:flex;gap:10px;flex-wrap:wrap}.status-pill,.stage-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 60%,#ffffff);background:linear-gradient(135deg,#fff,#f5f1ea);box-shadow:0 12px 26px #17282c1f;font-size:13px}.status-pill{text-transform:capitalize}.status-pill.status-in_progress,.status-pill.status-completed{border-color:#9cd3c8;color:#0c5c4d;background:linear-gradient(135deg,#e8f7f3,#fff)}.status-pill.status-queued{border-color:#e8dc9a;color:#6b5f00;background:linear-gradient(135deg,#fff7d6,#fff)}.status-pill.status-failed,.status-pill.status-cancelled{border-color:#e1b6b0;color:#8a2f2f;background:linear-gradient(135deg,#fdecea,#fff)}.app-main{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}.docs-main{grid-template-columns:1fr}.sidebar{display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.docs-viewer{max-width:980px}.docs-panel .panel-body{gap:16px}.docs-content{display:flex;flex-direction:column;gap:10px;color:#1f2a2e;line-height:1.6;font-size:14px}.docs-content h1{font-size:22px;margin:8px 0 0}.docs-content h2{font-size:18px;margin:12px 0 0}.docs-content h3{font-size:16px;margin:10px 0 0}.docs-content h4{font-size:14px;margin:8px 0 0;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.docs-content p{margin:0}.docs-content ul,.docs-content ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.docs-content code{font-family:JetBrains Mono,Fira Code,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.95em;background:#117a6514;border-radius:6px;padding:2px 6px}.panel-title{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:600}.panel-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.panel-title-row .panel-title{margin-bottom:0}.panel-body{display:flex;flex-direction:column;gap:12px}.control-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.run-name-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.run-name-input{width:100%;padding:8px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 70%,#ffffff);background:#fff;font-size:13px;color:#1f2a2e;box-shadow:inset 0 1px 2px #090e040f}.run-name-input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 60%,#ffffff);box-shadow:0 0 0 2px #117a652e}.run-panel .panel-body{gap:14px}.run-title-row{align-items:center}.run-title-actions{display:inline-flex;align-items:center;gap:6px}.transport-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:999px;padding:5px 10px;background:#e8f7f3cc;color:var(--accent-strong);font-weight:700;font-size:12px;cursor:pointer}.transport-btn:disabled{opacity:.48;cursor:not-allowed}.transport-icon{display:inline-block;width:12px;height:12px;color:currentColor}.transport-icon.play{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor}.transport-icon.pause{background:linear-gradient(to right,currentColor 0 35%,transparent 35% 65%,currentColor 65% 100%)}.run-panel .run-file-row{padding:10px;border-radius:14px;border:1px solid color-mix(in srgb,var(--border) 70%,#ffffff);background:linear-gradient(135deg,#fff,#f9f6f0);box-shadow:inset 0 1px 2px #0c0a060d}.run-panel .file-name{flex:1;min-width:160px}.run-panel .primary-btn{box-shadow:0 10px 24px #117a652e}.run-panel .run-actions{padding-top:10px;border-top:1px dashed color-mix(in srgb,var(--border) 75%,#ffffff)}.run-secondary-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px dashed color-mix(in srgb,var(--border) 75%,#ffffff)}.run-transport-note{font-size:12px;color:var(--muted)}.run-download-menu{position:relative}.run-download-menu summary{list-style:none;cursor:pointer;border:1px solid #b9d6cd;color:var(--accent-strong);background:#e8f7f38c;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.run-download-menu summary::-webkit-details-marker{display:none}.run-download-popover{position:absolute;z-index:6;right:0;top:calc(100% + 6px);display:grid;gap:6px;min-width:132px;padding:8px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 14px 30px #1f170829}.file-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:#fff;cursor:pointer;font-weight:600}.file-hidden{display:none}.file-name{font-size:12px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary-btn{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.ghost-btn{background:transparent;border:1px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;color:#1f2a2e}.ghost-btn:disabled{opacity:.45;cursor:not-allowed}.download-btn{border-color:#b9d6cd;color:var(--accent-strong);background:#e8f7f38c}.compact-btn{padding:4px 9px;font-size:12px}.icon-btn{border:1px solid var(--border);background:transparent;border-radius:8px;padding:2px 8px;cursor:pointer}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:12px;color:var(--muted)}.meta-value{margin-top:4px;font-size:14px;color:#1b242a;font-weight:600;word-break:break-all}.filter-actions{display:flex;gap:8px;flex-wrap:wrap}.filter-list{display:flex;flex-direction:column;gap:8px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filter-row select,.filter-row input{padding:6px 8px;border:1px solid var(--border);border-radius:8px;min-width:90px;flex:1 1 120px}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:12px;color:var(--muted)}.track-detail{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px dashed var(--border)}.track-detail-title{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}.mini-chart{border:1px solid var(--border);border-radius:12px;background:#0b0e14;padding:8px;display:flex;flex-direction:column;gap:8px}.mini-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between;color:#cbd5e1;font-size:11px}.mini-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid rgba(148,163,184,.3);background:#0f172a73}.mini-layer-strip{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:3px;border-radius:999px;background:#e2e8f014;color:#94a3b8}.mini-layer-strip>span{padding:0 5px;font-weight:700}.mini-layer-chip{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;color:#94a3b8;cursor:pointer;transition:background-color .14s ease,color .14s ease}.mini-layer-chip input{position:absolute;opacity:0;pointer-events:none}.mini-layer-chip.active{background:#e2e8f029;color:#e2e8f0}.mini-layer-chip:has(input:disabled){opacity:.45;cursor:not-allowed}.mini-chart-canvas{width:100%;position:relative}.mini-svg{width:100%;height:100%;display:block}.mini-peak{fill:#ff6b6b;stroke:#fff;stroke-width:1px}.mini-peak.selected{fill:#ffd166;stroke:#0b0e14;stroke-width:1.4px}.peak-regression-picker{display:inline-flex;align-items:center;gap:6px;max-width:100%;color:#94a3b8;font-weight:700}.mini-select{max-width:210px;border:0;border-radius:999px;padding:2px 20px 2px 8px;background:#e2e8f01f;color:#e2e8f0;font:inherit;color-scheme:dark}.mini-select option{background:#0b0e14;color:#e2e8f0}.mini-fit-meta{color:#94a3b8}.mini-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:#cbd5e1}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:999px;display:inline-block}.swatch-raw,.swatch-fit{background:var(--accent)}.swatch-sine{background:#d56b00}.swatch-peak{background:#d94836}.empty-text{font-size:13px;color:var(--muted)}.mini-tooltip{position:absolute;z-index:2;padding:4px 8px;border-radius:8px;background:#020617e6;border:1px solid rgba(148,163,184,.25);color:#e2e8f0;font-size:11px;pointer-events:none;transform:translateY(-6px)}.button-row{display:flex;gap:8px;flex-wrap:wrap}.danger-btn{border-color:#d6b5b0;color:#8a2f2f}.danger-btn:hover{border-color:#b06b63}.viewer{display:flex;flex-direction:column;gap:12px}.viewer-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.viewer-meta{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.eta-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 55%,#ffffff);background:#fffc;color:#1f2a2e;font-size:12px;letter-spacing:.02em}.viewer-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;font-size:12px;color:var(--muted);padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(135deg,#fff,#f7f4ef);box-shadow:0 10px 26px #1f170814}.viewer-controls label{display:flex;flex-direction:column;gap:6px;font-weight:600;letter-spacing:.02em;min-height:46px;justify-content:space-between}.viewer-controls select{padding:6px 8px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 65%,#ffffff);background:#fff;box-shadow:inset 0 1px 2px #090e040f}.viewer-controls input[type=color]{padding:0;width:24px;height:24px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 55%,#ffffff);background:#fff;box-shadow:0 2px 8px #0c0a062e;appearance:none;cursor:pointer}.viewer-controls input[type=color]::-webkit-color-swatch{border:none;border-radius:999px}.viewer-controls input[type=color]::-webkit-color-swatch-wrapper{padding:2px;border-radius:999px}.viewer-controls input[type=color]::-moz-color-swatch{border:none;border-radius:999px}.color-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 60%,#ffffff);background:#ffffffb3;min-height:46px}.color-control label{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:auto;font-weight:600;letter-spacing:.02em}.color-icon{width:10px;height:10px;border-radius:50%;border:1px solid color-mix(in srgb,var(--border) 60%,#ffffff);background:conic-gradient(from 90deg,#2bd9ff,#90ff9b,#ffe86b,#ff8a8a,#c0a4ff,#2bd9ff);box-shadow:inset 0 0 0 1px #ffffffb3}.color-reset{padding:5px 10px;font-size:12px}.toggle{flex-direction:row!important;align-items:center;gap:6px!important;padding:6px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 60%,#ffffff);background:#ffffffb3;min-height:46px;justify-content:flex-start}.canvas-card{position:relative;border:1px solid var(--border);border-radius:18px;background:#fff;padding:12px;box-shadow:var(--shadow);min-height:360px}.canvas-empty{padding:20px;border-radius:12px;border:1px dashed var(--border);color:var(--muted);text-align:center}.coord-tooltip{position:absolute;z-index:4;padding:6px 8px;border-radius:8px;background:#1b242aeb;color:#fff;font-size:12px;letter-spacing:.02em;pointer-events:none;white-space:nowrap;box-shadow:0 8px 16px #0000002e}.activity-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;padding-right:4px}.activity-item{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px dashed var(--border)}.activity-item:last-child{border-bottom:none}.activity-time{font-size:11px;color:var(--muted);min-width:68px}.activity-msg{font-size:13px;color:#1b242a}.activity-warn .activity-msg{color:#8a5b00}.activity-error .activity-msg{color:#b00020}.runs-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.runs-list{display:flex;flex-direction:column;gap:10px}.run-item{border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#faf8f3}.run-item.run-active{border-color:#94b7ad;box-shadow:inset 0 0 0 1px #117a6540}.run-main{display:flex;justify-content:space-between;align-items:center;gap:8px}.run-id{font-weight:600;font-size:13px}.run-name{font-weight:600;font-size:14px;color:#1f2a2e;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-name-edit{flex:1}.run-status{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.status-in_progress{color:#0c5c4d}.status-queued{color:#6b5f00}.status-completed{color:#0c5c4d}.status-failed,.status-cancelled{color:#8a2f2f}.run-meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.run-actions{display:flex;gap:8px;flex-wrap:wrap}.runs-summary{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.error-text{font-size:12px;color:#b00020}.config-editor{position:relative;width:100%;min-height:320px;border-radius:12px;border:1px solid var(--border);background:#fff;overflow:hidden}.config-textarea{position:relative;z-index:2;width:100%;min-height:320px;padding:12px;border:none;background:transparent;font-family:Space Mono,JetBrains Mono,Fira Mono,monospace;font-size:13px;line-height:1.5;resize:vertical;color:transparent;caret-color:#1b242a}.config-textarea:focus{outline:none}.config-pre{position:absolute;inset:0;margin:0;padding:12px;overflow:auto;font-family:Space Mono,JetBrains Mono,Fira Mono,monospace;font-size:13px;line-height:1.5;white-space:pre;color:#1b242a;pointer-events:none;z-index:1}.yaml-key{color:#0c5c4d;font-weight:600}.yaml-comment{color:#8a9298}.config-hint{font-size:12px;color:var(--muted)}.config-actions{display:flex;gap:8px;flex-wrap:wrap}.spinner{width:12px;height:12px;border:2px solid #a7b2b5;border-top-color:transparent;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.app-main{grid-template-columns:1fr}}
