:root{ --bg:#f5f7fb; --panel:#ffffff; --panel-soft:#fbfdff; --line:#dbe2ec; --line-strong:#c8d2df; --text:#0f172a; --muted:#667085; --blue:#2563eb; --blue-soft:#dbeafe; --green:#16a34a; --green-soft:#dcfce7; --amber:#d97706; --amber-soft:#fff7ed; --red:#dc2626; --red-soft:#fee2e2; --shadow:0 10px 24px rgba(15,23,42,.06); --radius:18px; } *{box-sizing:border-box;min-width:0} html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif} body{min-height:100vh} a,button,input,select,textarea{font:inherit} a{text-decoration:none;color:var(--blue)} button{cursor:pointer;border:0;background:none} input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:11px 12px;background:#fff;color:var(--text)} textarea{resize:vertical;min-height:72px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.5} label{display:grid;gap:7px;color:var(--text);font-weight:600} small{display:block;color:var(--muted);font-weight:400} strong,span,p,h1,h2,h3,h4,button,a,div,li,summary{overflow-wrap:break-word;word-break:normal;hyphens:none} .app-shell{max-width:1540px;margin:0 auto;padding:20px} .onepage-main{display:grid;gap:18px} .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:18px} .brand{display:flex;align-items:center;gap:14px} .brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#3b82f6);display:grid;place-items:center;color:#fff;font-size:20px;box-shadow:var(--shadow)} .brand h1{margin:0;font-size:18px;line-height:1.1} .brand p{margin:4px 0 0;color:var(--muted)} .top-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center} .panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px} .section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px} .section-head.compact h2,.section-head.compact h3{margin:2px 0 0} .section-head h2,.section-head h3,.mini-panel h4{margin:0;font-size:20px} .section-head p{margin:6px 0 0;color:var(--muted)} .eyebrow{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px} .muted{color:var(--muted)} .inline-actions,.quick-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center} .primary,.secondary,.link-btn,.bucket-pill,.user-chip,.logout-link,.badge,.filter{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:10px 14px;white-space:nowrap} .primary{background:var(--blue);color:#fff;font-weight:700} .primary:hover{filter:brightness(.98)} .secondary,.link-btn,.bucket-pill,.logout-link{background:#fff;border:1px solid var(--line-strong);color:var(--text)} .primary.small,.secondary.small{padding:8px 12px;font-size:13px} .full{width:100%} .link-btn.disabled{pointer-events:none;opacity:.5} .user-chip{background:#fff;border:1px solid var(--line-strong);font-weight:600} .bucket-pill{font-weight:600} .status-dot{display:inline-block;width:10px;height:10px;border-radius:999px;background:#94a3b8} .status-dot.green{background:var(--green)} .status-dot.amber-dot{background:var(--amber)} .badge{padding:8px 12px;border:1px solid transparent;font-size:12px;font-weight:700} .badge.neutral{background:#eef2ff;color:#475569} .badge.success,.pill.success{background:var(--green-soft);color:var(--green)} .badge.warn,.pill.warn,.pill.manual_action_required{background:var(--amber-soft);color:var(--amber)} .badge.error,.pill.error,.pill.failed,.pill.blocked{background:var(--red-soft);color:var(--red)} .badge.running,.pill.running{background:var(--blue-soft);color:var(--blue)} .badge.stale,.pill.stale{background:#f3f4f6;color:#475569} .operation-status,.auth-panel{border-radius:14px;padding:12px 14px;border:1px solid var(--line-strong);background:#fff} .operation-status.info{background:var(--blue-soft);border-color:#bfdbfe;color:#1d4ed8} .operation-status.success{background:var(--green-soft);border-color:#bbf7d0;color:#166534} .operation-status.warning,.auth-panel.warning{background:var(--amber-soft);border-color:#fed7aa;color:#9a3412} .operation-status.error{background:var(--red-soft);border-color:#fecaca;color:#991b1b} .workspace-grid{display:grid;grid-template-columns:360px minmax(0,1fr) 340px;gap:18px;align-items:start} .bottom-grid{display:grid;gap:18px} .field-stack{display:grid;gap:14px} .form-grid{display:grid;gap:12px} .two-cols{grid-template-columns:1fr 1fr} .build-panel .field-stack{margin-bottom:14px} .run-storage{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;margin:14px 0;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--panel-soft)} .build-mode-panel{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);margin:14px 0} .build-mode-panel strong{display:block;margin-bottom:4px} .build-mode-panel p{margin:0;color:var(--muted)} .settings-accordion{border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);padding:12px 14px;margin-bottom:14px} .settings-accordion summary{font-weight:700;cursor:pointer;list-style:none} .settings-accordion summary::-webkit-details-marker{display:none} .settings-stack{margin-top:12px} .toggle-list{display:grid;gap:10px} .toggle-list label{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff} .toggle-list input{width:auto;margin-top:4px} .launch-result-card{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)} .summary-meta{display:grid;gap:12px} .summary-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0} .summary-meta span,.detail-grid span,.diagnostic-list span{display:block;font-size:11px;letter-spacing:.02em;color:var(--muted);text-transform:uppercase;margin-bottom:4px} .summary-meta strong,.detail-grid strong,.diagnostic-list strong{font-size:14px;line-height:1.3} .progress-bar{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin:14px 0 8px} .progress-bar>div{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:999px} .progress-percent{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:12px} .timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 16px} .step{position:relative;display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center} .step-dot{width:28px;height:28px;border-radius:999px;border:2px solid var(--line-strong);display:grid;place-items:center;margin:0 auto;background:#fff;color:#64748b;font-size:12px;font-weight:700} .step strong{font-size:12px;line-height:1.25} .step small{font-size:11px;color:var(--muted);text-transform:capitalize} .step.completed .step-dot{background:var(--green);border-color:var(--green);color:#fff} .step.running .step-dot{background:#fff;border-color:var(--blue);color:var(--blue)} .step.failed .step-dot,.step.blocked .step-dot{background:#fff;border-color:var(--red);color:var(--red)} .manual-action,.poll-warning,.blockers{margin:12px 0;border-radius:14px;padding:13px;border:1px solid #f5c26b;background:var(--amber-soft)} .manual-action p,.poll-warning,.blockers p{margin:4px 0 0;color:#92400e} .blockers strong{display:block;color:#92400e} .split-panels{display:grid;gap:12px} .three-way{grid-template-columns:1.05fr .95fr .95fr} .bottom-split{grid-template-columns:1fr 1fr 0.8fr} .mini-panel{border:1px solid var(--line);border-radius:15px;background:var(--panel-soft);padding:14px} .activity-feed{display:grid;gap:8px} .activity-row{display:grid;grid-template-columns:64px 10px minmax(0,1fr) auto;gap:8px;align-items:start;padding:7px 0;border-bottom:1px solid var(--line)} .activity-row:last-child{border-bottom:0} .activity-row time{font-size:11px;color:var(--muted)} .activity-row .activity-dot{width:8px;height:8px;border-radius:999px;background:#94a3b8;margin-top:5px} .activity-row.success .activity-dot{background:var(--green)} .activity-row.running .activity-dot{background:var(--blue)} .activity-row.warning .activity-dot{background:var(--amber)} .activity-row.error .activity-dot{background:var(--red)} .activity-row strong{font-size:12px} .activity-row p{margin:2px 0 0;font-size:11px;color:var(--muted)} .activity-row em{font-style:normal;font-size:10px;border:1px solid var(--line);border-radius:999px;padding:3px 6px;background:#fff;color:var(--muted)} .detail-grid{display:grid;gap:10px} .compact-grid{margin-bottom:10px} .diagnostic-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px} .status-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0} .status-chip{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:11px} .status-chip em{font-style:normal} .issue-card{margin-top:10px;padding:10px;border:1px solid #fecaca;border-radius:12px;background:var(--red-soft)} .issue-card p{margin:4px 0 0;color:#7f1d1d} .zero-rules,.metric-list{list-style:none;margin:10px 0 0;padding:0} .zero-rules li,.metric-list li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:7px 0;font-size:12px} .zero-rules li:last-child,.metric-list li:last-child{border-bottom:0} .metric-ok{color:var(--green)} .metric-warn{color:var(--amber)} .report-home p{font-size:12px;color:var(--muted);line-height:1.45} .run-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0} .filter{padding:7px 12px;background:#fff;border:1px solid var(--line-strong);font-weight:700;color:var(--muted)} .filter.active{border-color:#93c5fd;background:var(--blue-soft);color:var(--blue)} .search-wrap{position:relative} .search-wrap input{padding-right:34px} .search-wrap span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted)} .runs-table{border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden;background:#fff;max-height:420px;overflow:auto} .run-row{width:100%;display:grid;grid-template-columns:12px minmax(0,1.1fr) auto minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left} .run-row:last-child{border-bottom:0} .run-row:hover{background:#f8fafc} .run-row.selected{background:#eff6ff} .run-row .dot{width:8px;height:8px;border-radius:999px;background:#94a3b8} .dot.running{background:var(--blue)} .dot.success,.dot.full_inference_success{background:var(--green)} .dot.manual_hardware_required,.dot.generated_needs_manual_hardware{background:var(--amber)} .dot.failed,.dot.blocked,.dot.technical_blocker{background:var(--red)} .dot.stale{background:#64748b} .run-row strong{font-size:12px} .run-row span,.run-row em{font-size:12px;color:var(--muted)} .run-row .pill{padding:4px 8px;border-radius:999px;background:#eef2ff;color:#475569;font-style:normal;font-weight:700} .selected-run-card{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)} .space-test-grid{display:grid;grid-template-columns:minmax(0,1.15fr) 360px;gap:16px} .test-top-row{grid-template-columns:1fr 1fr 110px} .editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px} .validation-result-card{border:1px solid var(--line);border-radius:15px;background:var(--panel-soft);padding:14px} .report-preview,.events{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;background:#101828;color:#d0d5dd;border:1px solid #1d2939;border-radius:12px;min-height:220px;max-height:420px;overflow:auto;padding:12px;white-space:pre-wrap;font-size:12px;line-height:1.5} .compact-events{min-height:180px} .artifact-list{display:grid;gap:6px;font-size:13px} .artifact-list a{display:flex;justify-content:space-between;gap:8px;color:var(--blue);border-bottom:1px solid var(--line);padding:6px 0} .artifact-list em{font-style:normal;color:var(--muted)} .empty{padding:13px;color:var(--muted);font-size:13px} .support-elements,[hidden]{display:none!important} @media (max-width: 1120px){ .workspace-grid{grid-template-columns:1fr 1fr} .runs-explorer-panel{grid-column:1 / -1} .three-way,.bottom-split,.space-test-grid{grid-template-columns:1fr} .summary-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))} } @media (max-width: 720px){ .app-shell{padding:12px} .topbar{grid-template-columns:1fr} .top-actions{justify-content:flex-start} .workspace-grid,.space-test-grid,.editor-grid,.two-cols,.summary-meta-grid,.diagnostic-list,.bottom-split,.three-way,.run-storage,.test-top-row{grid-template-columns:1fr} .run-row{grid-template-columns:12px minmax(0,1fr) auto;align-items:flex-start} .run-row span:nth-child(4),.run-row span:nth-child(5),.run-row span:nth-child(6){grid-column:2 / -1} .timeline{grid-template-columns:1fr 1fr} .activity-row{grid-template-columns:56px 10px minmax(0,1fr)} .activity-row em{grid-column:3;justify-self:start;white-space:normal} .inline-actions,.quick-links,.top-actions{display:grid;grid-template-columns:1fr;align-items:stretch} .primary,.secondary,.link-btn,.bucket-pill,.user-chip,.logout-link,.filter{width:100%;white-space:normal} } @media (max-width: 520px){ .timeline{grid-template-columns:1fr} .panel,.mini-panel,.validation-result-card{padding:14px} .brand p{display:none} .brand-mark{width:36px;height:36px;font-size:18px} .brand h1{font-size:17px} .section-head h2,.section-head h3{font-size:18px} }