:root{--brand-1: #42B09B;--brand-2: #56BA5E;--bg: #f4f5f9;--bg-elevated: #ffffff;--panel: #ffffff;--panel-2: #f8f9fc;--panel-hover: #f0f2f8;--sidebar-bg: #ffffff;--sidebar-accent: #f4f5fb;--border: #e3e6ee;--border-strong: #ccd1de;--divider: #edeff5;--text: #14161f;--text-soft: #3d4457;--muted: #656d84;--muted-2: #8b93a8;--accent: #0d7c6a;--accent-hover: #0a6959;--accent-contrast: #ffffff;--accent-bg: rgba(13, 124, 106, .09);--accent-border: rgba(13, 124, 106, .3);--ok: #167c4a;--ok-bg: rgba(22, 163, 94, .11);--ok-border: rgba(22, 163, 94, .3);--warn: #a35d05;--warn-bg: rgba(217, 138, 10, .13);--warn-border: rgba(217, 138, 10, .32);--bad: #c22a2a;--bad-bg: rgba(220, 47, 47, .1);--bad-border: rgba(220, 47, 47, .28);--info: #1f6fd4;--info-bg: rgba(31, 111, 212, .1);--radius-lg: 16px;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow: 0 1px 3px rgba(16, 24, 40, .07), 0 8px 24px -12px rgba(16, 24, 40, .16);--shadow-lg: 0 12px 40px -12px rgba(16, 24, 40, .24);--shadow-pop: 0 16px 48px -16px rgba(16, 24, 40, .34);--overlay: rgba(20, 22, 31, .42);--hover-wash: rgba(20, 22, 31, .035);--sunken: #f2f4f9;--preview-bg: #ffffff;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sidebar-w: 268px}:root[data-theme=dark]{--brand-1: #42B09B;--brand-2: #56BA5E;--bg: #0b0d14;--bg-elevated: #12151f;--panel: #141823;--panel-2: #171c28;--panel-hover: #1c2230;--sidebar-bg: #0e111a;--sidebar-accent: #161b27;--border: #252b3a;--border-strong: #37405480;--divider: #1f2534;--text: #e8ebf3;--text-soft: #c3c9d8;--muted: #98a0b5;--muted-2: #737c93;--accent: #4FC7AF;--accent-hover: #63d6bd;--accent-contrast: #08110e;--accent-bg: rgba(79, 199, 175, .15);--accent-border: rgba(79, 199, 175, .38);--ok: #4ade80;--ok-bg: rgba(74, 222, 128, .13);--ok-border: rgba(74, 222, 128, .32);--warn: #fbbf24;--warn-bg: rgba(251, 191, 36, .13);--warn-border: rgba(251, 191, 36, .32);--bad: #f87171;--bad-bg: rgba(248, 113, 113, .13);--bad-border: rgba(248, 113, 113, .32);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .13);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 10px 28px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 16px 44px -14px rgba(0, 0, 0, .7);--shadow-pop: 0 20px 56px -18px rgba(0, 0, 0, .8);--overlay: rgba(3, 5, 10, .7);--hover-wash: rgba(255, 255, 255, .035);--sunken: #0f131c;--preview-bg: #f7f8fa}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--brand-1: #42B09B;--brand-2: #56BA5E;--bg: #0b0d14;--bg-elevated: #12151f;--panel: #141823;--panel-2: #171c28;--panel-hover: #1c2230;--sidebar-bg: #0e111a;--sidebar-accent: #161b27;--border: #252b3a;--border-strong: #37405480;--divider: #1f2534;--text: #e8ebf3;--text-soft: #c3c9d8;--muted: #98a0b5;--muted-2: #737c93;--accent: #4FC7AF;--accent-hover: #63d6bd;--accent-contrast: #08110e;--accent-bg: rgba(79, 199, 175, .15);--accent-border: rgba(79, 199, 175, .38);--ok: #4ade80;--ok-bg: rgba(74, 222, 128, .13);--ok-border: rgba(74, 222, 128, .32);--warn: #fbbf24;--warn-bg: rgba(251, 191, 36, .13);--warn-border: rgba(251, 191, 36, .32);--bad: #f87171;--bad-bg: rgba(248, 113, 113, .13);--bad-border: rgba(248, 113, 113, .32);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .13);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 10px 28px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 16px 44px -14px rgba(0, 0, 0, .7);--shadow-pop: 0 20px 56px -18px rgba(0, 0, 0, .8);--overlay: rgba(3, 5, 10, .7);--hover-wash: rgba(255, 255, 255, .035);--sunken: #0f131c;--preview-bg: #f7f8fa}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.55;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted-2);background-clip:content-box}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.app.collapsed{--sidebar-w: 76px}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);padding:16px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{flex-shrink:0;display:block;object-fit:contain}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-name{font-size:20px;font-weight:700;letter-spacing:-.035em;color:var(--text);white-space:nowrap}.brand-sub{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.01em;white-space:nowrap}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--divider)}.nav-section{display:flex;flex-direction:column;gap:3px}.nav-label{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2);padding:2px 10px 6px}.nav-item{display:grid;grid-template-columns:22px 1fr;align-items:center;column-gap:11px;padding:9px 11px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--muted);font-size:13.5px;font-weight:550;cursor:pointer;width:100%;text-align:left;transition:background .15s,color .15s,border-color .15s;position:relative}.nav-item:hover{background:var(--sidebar-accent);color:var(--text);transform:none}.nav-item.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border);font-weight:650}.nav-item.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-item .nav-icon{display:grid;place-items:center;width:22px;height:22px}.nav-item .nav-desc{grid-column:2;font-size:11px;color:var(--muted-2);font-weight:450;margin:0}.nav-item.active .nav-desc{color:var(--muted)}.app.collapsed .nav-item{grid-template-columns:22px;justify-content:center}.app.collapsed .nav-item>span:not(.nav-icon){display:none}.app.collapsed .brand-text,.app.collapsed .sidebar-note,.app.collapsed .nav-label,.app.collapsed .sidebar-footer-text{display:none}.app.collapsed .sidebar{padding:16px 10px;align-items:center}.app.collapsed .sidebar-brand{justify-content:center}.sidebar-note{padding:11px 12px;font-size:11.5px;color:var(--muted);line-height:1.6;background:var(--sidebar-accent);border:1px solid var(--divider);border-radius:var(--radius-sm)}.sidebar-note strong{color:var(--text);display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12px}.sidebar-note ol{margin:0;padding-left:16px;display:grid;gap:2px}.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--divider);display:flex;flex-direction:column;gap:10px}.sidebar-footer-text{font-size:10.5px;color:var(--muted-2);line-height:1.5}.theme-toggle{display:flex;gap:2px;padding:3px;background:var(--sunken);border:1px solid var(--border);border-radius:999px;width:100%}.theme-toggle button{flex:1;display:grid;place-items:center;padding:6px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);box-shadow:none;transition:background .15s,color .15s}.theme-toggle button:hover{background:var(--panel-hover);color:var(--text);transform:none}.theme-toggle button.active{background:var(--panel);color:var(--accent);border-color:var(--border);box-shadow:var(--shadow-sm)}.app.collapsed .theme-toggle{flex-direction:column;border-radius:var(--radius-sm)}.app.collapsed .theme-toggle button{border-radius:var(--radius-xs)}.main{min-width:0;background:var(--bg);display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--border);padding:13px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1{display:none}.topbar-title{display:flex;flex-direction:column;min-width:0}.topbar-title h2{margin:0;font-size:18px;font-weight:680;letter-spacing:-.02em}.topbar-title p{margin:1px 0 0;font-size:12.5px;color:var(--muted)}.topbar-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.content{padding:22px 26px 60px;width:100%}.tab-body{display:flex;flex-direction:column;gap:18px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.panel:hover{border-color:var(--border-strong)}.panel h3{margin:0 0 12px;font-size:14px;font-weight:650;display:flex;align-items:center;gap:8px}.panel h3 .step-num{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-contrast);display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}.panel h3 .step-num.done{background:var(--ok);color:#fff}.section-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .2s,box-shadow .2s}.section-card.is-active{border-color:var(--accent-border);box-shadow:var(--shadow)}.section-card.is-locked{opacity:.72}.section-head{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--divider);background:var(--panel-2)}.section-index{width:26px;height:26px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--sunken);color:var(--muted);border:1px solid var(--border)}.section-card.is-active .section-index{background:var(--accent);color:var(--accent-contrast);border-color:transparent}.section-card.is-done .section-index{background:var(--ok);color:#fff;border-color:transparent}.section-heading{display:flex;flex-direction:column;min-width:0;flex:1}.section-title{margin:0;font-size:14.5px;font-weight:650;letter-spacing:-.01em}.section-hint{margin:0;font-size:12px;color:var(--muted)}.section-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.section-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.section-footer{padding:13px 20px;border-top:1px solid var(--divider);background:var(--panel-2);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.step-rail{display:flex;align-items:stretch;gap:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:6px;box-shadow:var(--shadow-sm);overflow-x:auto}.step-rail-item{flex:1;min-width:168px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);background:transparent;border:1px solid transparent;color:var(--muted);text-align:left;cursor:pointer;font:inherit;transition:background .15s,color .15s}.step-rail-item:hover{background:var(--hover-wash);transform:none;color:var(--text)}.step-rail-item.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text)}.step-rail-item.done{color:var(--text)}.step-rail-dot{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:11px;font-weight:700;border:1.5px solid var(--border-strong);color:var(--muted);background:var(--panel)}.step-rail-item.active .step-rail-dot{border-color:var(--accent);color:var(--accent);background:var(--panel)}.step-rail-item.done .step-rail-dot{background:var(--ok);border-color:var(--ok);color:#fff}.step-rail-text{display:flex;flex-direction:column;min-width:0}.step-rail-title{font-size:13px;font-weight:620;color:var(--text)}.step-rail-sub{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stepper{display:flex;gap:8px;margin:12px 0 16px}.stepper-step{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);font-size:12px}.stepper-step.active{border-color:var(--accent);background:var(--accent-bg)}.stepper-step.done{border-color:var(--ok-border);background:var(--ok-bg)}.stepper-step .step-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;font-size:10px;flex-shrink:0}.stepper-step.active .step-dot{border-color:var(--accent);color:var(--accent)}.stepper-step.done .step-dot{background:var(--ok);border-color:var(--ok);color:#fff}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:30px 20px;text-align:center;background:var(--panel-2);transition:border-color .15s,background .15s;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--accent-bg)}.dropzone.dragover{border-style:solid}.dropzone.compact{flex-direction:row;justify-content:center;gap:9px;padding:12px;font-size:12.5px;font-weight:550;color:var(--muted)}.dropzone.compact:hover{color:var(--accent)}.dropzone p{margin:4px 0 0;font-size:12px;color:var(--muted)}.dropzone-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin-bottom:6px;background:var(--accent-bg);color:var(--accent)}.dropzone-title{font-size:14.5px;font-weight:650;color:var(--text)}.dropzone-sub{font-size:12.5px;color:var(--muted)}.dropzone-formats{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-top:10px}.format-chip{font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:2px 7px;border-radius:5px;background:var(--sunken);color:var(--muted-2);border:1px solid var(--divider);font-family:var(--font-mono)}.upload-hint{font-size:11px;color:var(--muted-2);margin-top:8px}.file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.file-list{display:flex;flex-direction:column;gap:6px}.file-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);transition:border-color .15s,background .15s,opacity .15s}.file-row:hover{border-color:var(--border-strong);background:var(--panel-2)}.file-row.excluded{opacity:.5}.file-row-icon{width:32px;height:32px;border-radius:var(--radius-xs);flex-shrink:0;display:grid;place-items:center;background:var(--sunken);color:var(--muted)}.file-row-main{flex:1;min-width:0;display:flex;flex-direction:column}.file-row-name{display:block;width:100%;max-width:100%;font-size:13px;font-weight:570;line-height:1.35;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;padding:0;text-align:left;cursor:pointer}.file-row-name:hover{color:var(--accent);text-decoration:underline;background:none;transform:none}.file-row-meta{font-size:11.5px;color:var(--muted-2);display:flex;align-items:center;gap:7px}.file-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.row{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-soft);min-width:180px;flex:1}label.grow{flex:2;min-width:240px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;max-width:1180px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:12px;font-weight:620;color:var(--text-soft);display:flex;align-items:center;gap:6px}.field-help{font-size:11.5px;color:var(--muted-2);line-height:1.45}input,select,textarea{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;font-size:13px;font-family:inherit;width:100%;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}input:disabled,select:disabled,textarea:disabled{background:var(--sunken);color:var(--muted-2);cursor:not-allowed}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 16px) 51%,calc(100% - 11px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px;color:var(--text)}textarea{font-family:var(--font-mono);font-size:12.5px;line-height:1.6;resize:vertical}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}button{background:var(--accent);color:var(--accent-contrast);border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 15px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}button:hover{background:var(--accent-hover)}button.primary{box-shadow:0 2px 10px -2px var(--accent-border)}button.secondary{background:var(--panel);border-color:var(--border);color:var(--text)}button.secondary:hover{background:var(--panel-hover);border-color:var(--border-strong)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{background:var(--hover-wash);color:var(--text)}button.danger{background:var(--bad);color:#fff}button.danger:hover{background:var(--bad);filter:brightness(1.08)}button.mini{padding:5px 9px;font-size:12px;font-weight:550;background:var(--panel);border:1px solid var(--border);color:var(--text-soft)}button.mini:hover{background:var(--panel-hover);border-color:var(--border-strong);color:var(--text)}button.mini.danger{background:transparent;border-color:var(--bad-border);color:var(--bad)}button.mini.danger:hover{background:var(--bad-bg)}button.icon-button{padding:7px;width:32px;height:32px;background:transparent;border:1px solid transparent;color:var(--muted)}button.icon-button:hover{background:var(--hover-wash);color:var(--text);border-color:var(--border)}button.icon-button.bordered{border-color:var(--border);background:var(--panel)}button:disabled{opacity:.45;cursor:not-allowed;filter:none}button:disabled:hover{background:var(--accent)}button.secondary:disabled:hover,button.mini:disabled:hover{background:var(--panel)}.link-button{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-size:13px;font-weight:550;text-align:left;box-shadow:none}.link-button:hover{text-decoration:underline;background:none;color:var(--accent-hover)}.muted{color:var(--muted);font-size:12.5px}.mono{font-family:var(--font-mono);font-size:12px}.badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:620;line-height:1.7;vertical-align:middle;background:var(--sunken);color:var(--muted);white-space:nowrap}.badge.ok,.badge.status-succeeded,.badge.status-completed{color:var(--ok);border-color:var(--ok-border);background:var(--ok-bg)}.badge.warn{color:var(--warn);border-color:var(--warn-border);background:var(--warn-bg)}.badge.bad{color:var(--bad);border-color:var(--bad-border);background:var(--bad-bg)}.badge.info,.badge.status-running,.badge.status-queued,.badge.status-pending{color:var(--info);border-color:color-mix(in srgb,var(--info) 35%,transparent);background:var(--info-bg)}.badge.status-operational_failed,.badge.status-canceled{color:var(--bad);border-color:var(--bad-border);background:var(--bad-bg)}.badge.status-partial{color:var(--warn);border-color:var(--warn-border);background:var(--warn-bg)}.badge.class-text{color:#8b5cf6;border-color:#8b5cf652;background:#8b5cf61c}.badge.class-image,.badge.class-mixed,.badge.class-unknown{color:var(--warn);border-color:var(--warn-border);background:var(--warn-bg)}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.status-running .dot{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-xs);font-size:11.5px;font-weight:570;background:var(--sunken);border:1px solid var(--divider);color:var(--muted)}.grid-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}.table-scroll>.grid-table{border:none;border-radius:0}.table-scroll>.grid-table th:first-child,.table-scroll>.grid-table td:first-child{padding-left:12px}.grid-table th,.grid-table td{padding:9px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--divider)}.grid-table th{background:var(--panel-2);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);position:sticky;top:0;z-index:1}.grid-table tr:last-child td{border-bottom:none}.grid-table tbody tr{transition:background .12s}.grid-table tbody tr:hover{background:var(--hover-wash)}.grid-table .selected-row,.grid-table tbody tr.selected-row:hover{background:var(--accent-bg)}.selected-row{box-shadow:inset 3px 0 0 var(--accent)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);max-width:100%}.field-name{font-family:var(--font-mono);white-space:nowrap;font-size:12px;color:var(--text-soft)}.copy-cell{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:baseline;gap:6px;text-align:left;border-radius:var(--radius-xs)}.copy-cell .copy-hint{font-size:10px;color:var(--muted-2);opacity:0;transition:opacity .12s}.copy-cell:hover .copy-hint,.copy-cell:focus-visible .copy-hint{opacity:1}.copy-cell:hover,.copy-cell:focus,.copy-cell:focus-visible{background:none}.copy-cell:hover{color:var(--text)}.copy-cell:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.actual-cell{color:var(--muted);max-width:260px;overflow-wrap:anywhere;font-size:12px}.actual-hint{color:var(--muted-2);font-size:11px}.cell-input{width:100%;min-width:90px;padding:6px 8px;font-size:12.5px}.cell-missing td.actual-cell{color:var(--bad)}.cell-wrong .actual-cell{color:var(--warn)}.cell-unexpected{background:var(--bad-bg)}.row-actions{white-space:nowrap;display:flex;gap:4px}.correction-grid{display:flex;flex-direction:column;gap:8px}.array-grid,.nested-array{margin-top:16px;min-width:0}.correction-grid{min-width:0}.array-grid h4{margin:8px 0;font-size:13px;font-weight:650;display:flex;align-items:center;gap:8px}.nested-array h5{margin:8px 0;font-size:12px;color:var(--muted);font-weight:600}.nested{padding-left:10px;border-left:2px solid var(--divider)}.prompt-editor{display:flex;flex-direction:column;gap:12px}.prompt-editor textarea{margin:0}.schema-panel{background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;max-height:420px;overflow:auto;font-size:12px;font-family:var(--font-mono);color:var(--text-soft);margin:0}.tabs{display:flex;gap:3px;padding:3px;background:var(--sunken);border-radius:var(--radius-sm);border:1px solid var(--border);width:fit-content}.tabs .tab{background:transparent;border:1px solid transparent;color:var(--muted);padding:6px 13px;border-radius:var(--radius-xs);font-size:12.5px;font-weight:570;text-transform:capitalize}.tabs .tab:hover{color:var(--text);background:var(--hover-wash)}.tabs .tab.active{background:var(--panel);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}.model-select-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-weight:500;font-size:13px}.model-select-trigger:hover{background:var(--panel-hover);border-color:var(--border-strong)}.model-select-trigger.empty{color:var(--muted-2)}.model-select-trigger .spacer{margin-left:auto}.provider-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--muted)}.provider-dot.gemini{background:#4285f4}.provider-dot.openai{background:#10a37f}.provider-dot.openrouter{background:#8b5cf6}.provider-dot.cerebras{background:#f97316}.model-picker{display:flex;flex-direction:column;gap:10px}.model-picker-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.model-search{position:relative;flex:1;min-width:200px}.model-search input{padding-left:32px}.model-search .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none}.filter-pills{display:flex;gap:4px;flex-wrap:wrap}.filter-pill{padding:5px 11px;border-radius:999px;font-size:12px;font-weight:570;background:var(--panel);border:1px solid var(--border);color:var(--muted)}.filter-pill:hover{background:var(--panel-hover);color:var(--text)}.filter-pill.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:9px;max-height:340px;overflow-y:auto;padding:2px}.model-card{display:flex;flex-direction:column;gap:7px;align-items:stretch;padding:11px 13px;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-weight:500;font-size:13px;transition:border-color .15s,background .15s}.model-card:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.model-card.active{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent-border)}.model-card:disabled{opacity:.45;cursor:not-allowed;background:var(--panel)}.model-card-top{display:flex;align-items:center;gap:8px}.model-card-name{font-weight:620;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-card-meta{display:flex;flex-wrap:wrap;gap:5px}.model-card-reason{font-size:11px;color:var(--warn);line-height:1.4}.error-bar,.status-bar,.info-bar{border-radius:var(--radius-sm);padding:11px 13px;font-size:13px;display:flex;align-items:flex-start;gap:9px;line-height:1.5;margin:0}.error-bar{background:var(--bad-bg);border:1px solid var(--bad-border);color:var(--bad)}.status-bar{background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok)}.info-bar{background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info) 30%,transparent);color:var(--info)}.error-bar svg,.status-bar svg,.info-bar svg{flex-shrink:0;margin-top:2px}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(460px,calc(100vw - 40px))}.toast-stack>*{box-shadow:var(--shadow-lg)}.toast-stack .error-bar{background:linear-gradient(var(--bad-bg),var(--bad-bg)),var(--panel)}.toast-stack .status-bar{background:linear-gradient(var(--ok-bg),var(--ok-bg)),var(--panel)}.toast-stack .icon-button{color:inherit;opacity:.7}.toast-stack .icon-button:hover{opacity:1;background:var(--hover-wash)}.unexpected-panel{margin-top:12px}.unexpected-panel h5{margin:0 0 6px;font-size:12px;font-weight:650;color:var(--warn)}.unexpected-panel ul,.validation-errors{margin:6px 0;padding-left:18px;color:var(--bad);font-size:12px;font-family:var(--font-mono);display:grid;gap:2px}.aggregate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:4px 0}.metric{border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;background:var(--panel-2)}.metric-label{font-size:10px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.metric-value{font-size:18px;font-weight:700;margin-top:3px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.progress{height:6px;background:var(--sunken);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--brand-1),var(--brand-2));border-radius:99px;transition:width .5s ease}.controls{display:flex;flex-wrap:wrap;gap:8px}.controls button{min-width:90px}.run-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;background:var(--panel)}.run-card:hover{border-color:var(--border-strong)}.run-card summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none}.run-card summary::-webkit-details-marker{display:none}.run-card summary strong{font-size:13px}.run-detail-stack{display:flex;flex-direction:column;gap:14px}.stack-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);padding:14px 16px}.stack-section h4{margin:0 0 11px;font-size:13px;font-weight:650;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.doc-preview-fixed{height:520px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.doc-preview-fixed .doc-preview{height:100%}.doc-preview-modal{height:min(72vh,780px)}.doc-preview-modal .doc-preview{height:100%}.doc-preview-modal .doc-preview-header{display:none}.doc-preview{display:flex;flex-direction:column;height:100%;gap:8px}.doc-preview-header{display:flex;align-items:center;gap:8px;min-width:0}.doc-preview-filename{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-preview-body{flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--preview-bg);display:flex}.doc-preview-frame{width:100%;height:100%;border:none;background:var(--preview-bg)}.doc-preview-image-wrap{overflow:auto;width:100%;display:grid;place-items:center;padding:8px}.doc-preview-image{max-width:100%;height:auto;border-radius:4px}.doc-preview-text{margin:0;padding:14px;width:100%;font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;color:#14161f;background:var(--preview-bg);overflow:auto}.modal-backdrop{position:fixed;inset:0;background:var(--overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;animation:fade-in .15s ease}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;width:min(1100px,96vw);max-height:92vh;overflow:auto;box-shadow:var(--shadow-pop);animation:pop-in .16s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-head h3{margin:0;font-size:15px;font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.empty-state{text-align:center;padding:34px 16px;color:var(--muted)}.empty-state .empty-icon{width:46px;height:46px;border-radius:14px;margin:0 auto 12px;display:grid;place-items:center;font-size:20px;background:var(--sunken);color:var(--muted-2);border:1px solid var(--divider)}.empty-state h4{margin:0 0 4px;color:var(--text);font-size:14px;font-weight:650}.empty-state p{margin:0;font-size:12.5px;max-width:380px;margin-inline:auto}.suites-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;min-height:480px}.suites-sidebar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;height:fit-content;max-height:calc(100vh - 140px);position:sticky;top:84px;box-shadow:var(--shadow-sm)}.suites-sidebar-header{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--divider);background:var(--panel-2);flex-shrink:0}.suites-sidebar-header h3{margin:0;font-size:13px;font-weight:650}.folder-list{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0}.folder-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);overflow:hidden;flex:0 0 auto}.folder-header{width:100%;display:flex;align-items:center;gap:8px;padding:9px 10px;min-height:34px;flex-shrink:0;background:transparent;border:none;color:var(--text);font-size:12.5px;font-weight:620;cursor:pointer;text-align:left;border-radius:0}.folder-header:hover{background:var(--hover-wash)}.folder-toggle{font-size:9px;color:var(--muted);width:12px;flex-shrink:0}.folder-icon{font-size:13px;flex-shrink:0}.folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-items{display:flex;flex-direction:column;gap:3px;padding:6px;border-top:1px solid var(--divider);background:var(--panel);flex-shrink:0}.suite-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;min-height:34px;flex-shrink:0;border-radius:var(--radius-xs);border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;text-align:left;transition:background .12s}.suite-item:hover{background:var(--panel-hover);color:var(--text)}.suite-item.active{background:var(--accent-bg);color:var(--text);border-color:var(--accent-border)}.suite-item-icon{font-size:12px;width:14px;text-align:center;flex-shrink:0}.suite-item-main{flex:1;min-width:0;display:flex;flex-direction:column}.suite-item-name{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suite-item-desc{color:var(--muted-2);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suite-item-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.suites-main{min-width:0;display:flex;flex-direction:column;gap:18px}.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:9px 13px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:12.5px}@media(max-width:1000px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid var(--border)}.app.collapsed .sidebar{padding:16px 14px;align-items:stretch}.app.collapsed{--sidebar-w: 100%}.app.collapsed .nav-item{grid-template-columns:22px 1fr;justify-content:flex-start}.app.collapsed .nav-item>span:not(.nav-icon),.app.collapsed .brand-text,.app.collapsed .nav-label,.app.collapsed .sidebar-footer-text{display:initial}.content{padding:16px}.topbar{padding:12px 16px}.suites-layout{grid-template-columns:1fr}.suites-sidebar{position:relative;top:auto;max-height:420px}.step-rail-item{min-width:140px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
