diff --git "a/web/static/app.css" "b/web/static/app.css" --- "a/web/static/app.css" +++ "b/web/static/app.css" @@ -1,22 +1,5 @@ -:root{ - --bg:#f6f8fc; - --panel:#fff; - --soft:#fbfdff; - --line:#dfe5ee; - --line-strong:#c9d4e3; - --text:#101828; - --muted:#667085; - --blue:#2563eb; - --blue-soft:#dbeafe; - --green:#16a34a; - --green-soft:#dcfce7; - --amber:#f59e0b; - --amber-soft:#fff7ed; - --red:#e11d48; - --red-soft:#ffe4e6; - --shadow:0 10px 24px rgba(16,24,40,.06); - --radius:16px; -} +/* ASF CSS optimized runtime bundle — v196. Source-readable v195 CSS and v194 rollback are preserved in the complete handoff archive. */ +:root{--bg:#f6f8fc;--panel:#fff;--soft:#fbfdff;--line:#dfe5ee;--line-strong:#c9d4e3;--text:#101828;--muted:#667085;--blue:#2563eb;--blue-soft:#dbeafe;--green:#16a34a;--green-soft:#dcfce7;--amber:#f59e0b;--amber-soft:#fff7ed;--red:#e11d48;--red-soft:#ffe4e6;--shadow:0 10px 24px rgba(16,24,40,.06);--radius:16px} *{box-sizing:border-box;min-width:0} html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif} button,input,select,textarea{font:inherit} @@ -28,7 +11,6 @@ input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 3p textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.5;resize:vertical} strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:normal;hyphens:none} [hidden],.support-elements{display:none!important} - .app-shell{max-width:1540px;margin:0 auto;padding:20px} .onepage-main{display:grid;gap:14px} .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:16px} @@ -49,7 +31,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .primary:disabled,.secondary:disabled{opacity:.5;cursor:not-allowed} .full{width:100%} .user-chip{background:#fff;border-color:var(--line-strong);font-weight:700} - .auth-lifetime-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;border:1px solid var(--line-strong);padding:8px 11px;font-size:12px;font-weight:900;background:#fff;color:#475569;white-space:nowrap} .auth-lifetime-badge.success{background:var(--green-soft);border-color:#bbf7d0;color:#166534} .auth-lifetime-badge.warn{background:var(--amber-soft);border-color:#fed7aa;color:#9a3412} @@ -71,13 +52,11 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .badge.error,.pill.failed,.pill.error,.pill.blocked,.pill.technical_blocker{background:var(--red-soft);color:var(--red)} .badge.stale,.pill.stale{background:#f2f4f7;color:#667085} .link-btn.disabled{pointer-events:none;opacity:.5} - .operation-status,.auth-panel{border-radius:12px;padding:10px 12px;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:minmax(300px,420px) minmax(460px,1fr) minmax(300px,420px);gap:14px;align-items:start} .left-stack{display:grid;gap:12px} .bucket-setup-panel{display:grid;gap:10px} @@ -103,11 +82,12 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .billing-note{margin:0;font-size:12px;line-height:1.35} .billing-actions{display:grid;grid-template-columns:1fr;gap:8px} .billing-actions .link-btn{justify-content:center;padding:8px 10px;font-size:12px} -@keyframes softPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.12)}50%{box-shadow:0 0 0 5px rgba(37,99,235,.08)}} +@keyframes softPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.12)} +50%{box-shadow:0 0 0 5px rgba(37,99,235,.08)} +} .runs-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:10px;color:var(--muted);font-size:12px} .all-events-panel{margin-top:0} .all-events-panel summary{cursor:pointer;font-weight:800;color:#344054} - .field-stack{display:grid;gap:13px} .form-grid{display:grid;gap:12px} .two-cols{grid-template-columns:1fr 1fr} @@ -120,12 +100,11 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .compact-toggles input:checked:before{left:16px} .build-gate{margin:0;text-align:center;font-size:12px} .quick-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center} - - - .active-run-panel{display:grid;gap:12px} .active-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0} -.active-meta div{min-width:0}.active-meta strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-meta div:nth-child(4),.active-meta div:nth-child(5),.active-meta div:nth-child(6){grid-column:auto} +.active-meta div{min-width:0} +.active-meta strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.active-meta div:nth-child(4),.active-meta div:nth-child(5),.active-meta div:nth-child(6){grid-column:auto} .summary-meta span,.detail-grid span,.validation-grid span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px} .summary-meta strong,.detail-grid strong,.validation-grid strong{font-size:12px;line-height:1.25} .summary-meta strong.warn-text{color:#b45309} @@ -148,7 +127,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .manual-action,.blockers{border:1px solid #fed7aa;background:var(--amber-soft);border-radius:12px;padding:11px;margin:0} .manual-action p,.blockers p{margin:4px 0 0;color:#9a3412} .inline-actions{display:flex;gap:8px;flex-wrap:wrap} - .mini-panel{border:1px solid var(--line);border-radius:13px;background:#fff;padding:12px} .mini-panel h4{margin:0 0 8px;font-size:13px} .card-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px} @@ -195,161 +173,93 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .selected-links-row{margin:10px 0} .selected-links-row .link-btn{font-size:12px;padding:8px 10px} .selected-run-card .secondary.full{margin-top:8px} - .space-test-panel{padding:16px} .space-test-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,450px);gap:18px;align-items:start} .test-top-row{grid-template-columns:minmax(220px,1.2fr) minmax(150px,.8fr) minmax(150px,.8fr) 110px} .editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px} .validation-result-card{border:1px solid #bfdbfe;background:#f8fbff;border-radius:13px;padding:14px} .validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom: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;padding:12px;white-space:pre-wrap;font-size:12px;line-height:1.5;max-height:300px;overflow:auto} .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} .empty{padding:12px;color:var(--muted);font-size:13px} .support-elements,[hidden]{display:none!important} - -@media (max-width: 1380px){ - .workspace-grid{grid-template-columns:minmax(280px,390px) minmax(430px,1fr) minmax(280px,390px)} - .timeline{grid-template-columns:repeat(9,minmax(42px,1fr))} -} -@media (max-width: 1180px){ - .workspace-grid{grid-template-columns:1fr 1fr} - .runs-explorer-panel{grid-column:1 / -1} - .space-test-grid{grid-template-columns:1fr} -} -@media (max-width: 720px){ - .app-shell{padding:12px} - .topbar,.workspace-grid,.space-test-grid,.editor-grid,.test-top-row,.two-cols,.active-meta,.selected-grid,.validation-grid,.bucket-actions{grid-template-columns:1fr} - .billing-grid{grid-template-columns:1fr} - .top-actions,.quick-links,.inline-actions,.active-run-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} - .timeline{grid-template-columns:1fr} - .step{grid-template-columns:32px minmax(0,1fr);text-align:left;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff} - .step:before{display:none} - .step-dot{grid-column:1;grid-row:1 / span 2} - .step strong,.step small{grid-column:2} - .step small{display:block} - .activity-row{grid-template-columns:54px 10px minmax(0,1fr)} - .activity-row em{grid-column:3;justify-self:start;white-space:normal} - .brand p{display:none} -} - +@media (max-width:1380px){.workspace-grid{grid-template-columns:minmax(280px,390px) minmax(430px,1fr) minmax(280px,390px)} +.timeline{grid-template-columns:repeat(9,minmax(42px,1fr))} +} +@media (max-width:1180px){.workspace-grid{grid-template-columns:1fr 1fr} +.runs-explorer-panel{grid-column:1 / -1} +.space-test-grid{grid-template-columns:1fr} +} +@media (max-width:720px){.app-shell{padding:12px} +.topbar,.workspace-grid,.space-test-grid,.editor-grid,.test-top-row,.two-cols,.active-meta,.selected-grid,.validation-grid,.bucket-actions{grid-template-columns:1fr} +.billing-grid{grid-template-columns:1fr} +.top-actions,.quick-links,.inline-actions,.active-run-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} +.timeline{grid-template-columns:1fr} +.step{grid-template-columns:32px minmax(0,1fr);text-align:left;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff} +.step:before{display:none} +.step-dot{grid-column:1;grid-row:1 / span 2} +.step strong,.step small{grid-column:2} +.step small{display:block} +.activity-row{grid-template-columns:54px 10px minmax(0,1fr)} +.activity-row em{grid-column:3;justify-self:start;white-space:normal} +.brand p{display:none} +} .secondary.danger{border-color:#fecdd3;color:#be123c;background:#fff1f2} .secondary.danger:hover{background:#ffe4e6} .timeline{overflow-x:auto;scrollbar-width:thin;padding-bottom:4px} .timeline .step{min-width:72px} -@media (min-width:721px){ - .timeline{grid-template-columns:repeat(26,minmax(72px,1fr))} +@media (min-width:721px){.timeline{grid-template-columns:repeat(26,minmax(72px,1fr))} } - .active-run-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center} .active-run-actions .link-btn{padding:8px 10px;font-size:12px} .active-run-actions #cancelRun{margin-left:auto} - - -/* v56 feedback motion */ .progress-bar{position:relative} -.progress-bar>div{ - transition:width .75s cubic-bezier(.22,1,.36,1), background-color .25s ease, filter .25s ease; - will-change:width,transform,filter; - position:relative; - overflow:hidden; -} -.progress-bar>div.is-running::after{ - content:""; - position:absolute; - inset:0; - background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); - transform:translateX(-100%); - animation:progress-shimmer 1.4s linear infinite; -} -.progress-bar>div.progress-bump{ - animation:progress-bump .55s ease-out; -} -.value-bump{ - animation:value-bump .55s ease-out; -} -.badge.status-bump{ - animation:status-bump .7s ease-out; -} -.step{ - transition:background-color .25s ease,border-color .25s ease,transform .25s ease,opacity .25s ease; -} -.step:before{ - transition:background .55s ease; -} -.step-dot{ - transition:background-color .35s ease,border-color .35s ease,color .35s ease,box-shadow .35s ease,transform .35s ease; -} -.step.running .step-dot{ - animation:step-running-pulse 1.25s ease-in-out infinite; -} -.step.status-flash{ - animation:step-status-flash .9s ease-out; -} -.step-dot.dot-pop{ - animation:dot-pop .55s cubic-bezier(.34,1.56,.64,1); -} -.activity-row{ - animation:activity-enter .28s ease-out; -} -@keyframes progress-shimmer{ - to{transform:translateX(100%)} -} -@keyframes progress-bump{ - 0%{filter:brightness(1);transform:scaleY(1)} - 40%{filter:brightness(1.18);transform:scaleY(1.35)} - 100%{filter:brightness(1);transform:scaleY(1)} -} -@keyframes value-bump{ - 0%{transform:translateY(0);color:inherit} - 40%{transform:translateY(-2px);color:var(--blue)} - 100%{transform:translateY(0);color:inherit} -} -@keyframes status-bump{ - 0%{transform:scale(1)} - 35%{transform:scale(1.06)} - 100%{transform:scale(1)} -} -@keyframes step-running-pulse{ - 0%,100%{box-shadow:0 0 0 4px #eff6ff} - 50%{box-shadow:0 0 0 8px rgba(37,99,235,.16)} -} -@keyframes step-status-flash{ - 0%{background:rgba(37,99,235,.12);transform:translateY(-1px)} - 100%{background:transparent;transform:translateY(0)} -} -@keyframes dot-pop{ - 0%{transform:scale(.72)} - 55%{transform:scale(1.2)} - 100%{transform:scale(1)} -} -@keyframes activity-enter{ - from{opacity:.2;transform:translateY(-4px)} - to{opacity:1;transform:translateY(0)} -} -@media (prefers-reduced-motion: reduce){ - .progress-bar>div, - .progress-bar>div::after, - .step, - .step:before, - .step-dot, - .activity-row, - .badge, - .value-bump{ - transition:none!important; - animation:none!important; - } -} - - - -.active-run-cancel-only{justify-content:flex-end}.active-run-cancel-only #cancelRun{margin-left:auto} - +.progress-bar>div{transition:width .75s cubic-bezier(.22,1,.36,1),background-color .25s ease,filter .25s ease;will-change:width,transform,filter;position:relative;overflow:hidden} +.progress-bar>div.is-running::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-100%);animation:progress-shimmer 1.4s linear infinite} +.progress-bar>div.progress-bump{animation:progress-bump .55s ease-out} +.value-bump{animation:value-bump .55s ease-out} +.badge.status-bump{animation:status-bump .7s ease-out} +.step{transition:background-color .25s ease,border-color .25s ease,transform .25s ease,opacity .25s ease} +.step:before{transition:background .55s ease} +.step-dot{transition:background-color .35s ease,border-color .35s ease,color .35s ease,box-shadow .35s ease,transform .35s ease} +.step.running .step-dot{animation:step-running-pulse 1.25s ease-in-out infinite} +.step.status-flash{animation:step-status-flash .9s ease-out} +.step-dot.dot-pop{animation:dot-pop .55s cubic-bezier(.34,1.56,.64,1)} +.activity-row{animation:activity-enter .28s ease-out} +@keyframes progress-shimmer{to{transform:translateX(100%)} +} +@keyframes progress-bump{0%{filter:brightness(1);transform:scaleY(1)} +40%{filter:brightness(1.18);transform:scaleY(1.35)} +100%{filter:brightness(1);transform:scaleY(1)} +} +@keyframes value-bump{0%{transform:translateY(0);color:inherit} +40%{transform:translateY(-2px);color:var(--blue)} +100%{transform:translateY(0);color:inherit} +} +@keyframes status-bump{0%{transform:scale(1)} +35%{transform:scale(1.06)} +100%{transform:scale(1)} +} +@keyframes step-running-pulse{0%,100%{box-shadow:0 0 0 4px #eff6ff} +50%{box-shadow:0 0 0 8px rgba(37,99,235,.16)} +} +@keyframes step-status-flash{0%{background:rgba(37,99,235,.12);transform:translateY(-1px)} +100%{background:transparent;transform:translateY(0)} +} +@keyframes dot-pop{0%{transform:scale(.72)} +55%{transform:scale(1.2)} +100%{transform:scale(1)} +} +@keyframes activity-enter{from{opacity:.2;transform:translateY(-4px)} +to{opacity:1;transform:translateY(0)} +} +@media (prefers-reduced-motion:reduce){.progress-bar>div,.progress-bar>div::after,.step,.step:before,.step-dot,.activity-row,.badge,.value-bump{transition:none!important;animation:none!important} +} +.active-run-cancel-only{justify-content:flex-end} +.active-run-cancel-only #cancelRun{margin-left:auto} .selected-actions-stack{display:grid;gap:8px;margin-top:8px} - -/* v64: clearer timeline states and compact events */ .activity-feed.show-all{max-height:235px;overflow-y:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)} .activity-feed.show-all .activity-row{min-height:44px} .activity-feed:not(.show-all) .activity-row:nth-child(n+4){display:none} @@ -364,146 +274,47 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .step.status-pending .step-dot{background:#fff;color:#98a2b3} .step.status-stopped:before,.step.status-muted:before,.step.status-pending:before{background:#d0d5dd} .progress-bar>div:not(.is-running)::after{display:none} - -/* v65: fixed floating notifications */ -.toast-layer{ - position:fixed; - top:16px; - left:50%; - transform:translateX(-50%); - z-index:9999; - width:min(720px,calc(100vw - 24px)); - pointer-events:none; -} -.floating-toast{ - box-shadow:0 18px 40px rgba(15,23,42,.18); - pointer-events:auto; - animation:toast-enter .22s ease-out; -} -.operation-status.loading{ - background:#eef2ff; - border-color:#c7d2fe; - color:#3730a3; -} -@keyframes toast-enter{ - from{opacity:0;transform:translateY(-8px)} - to{opacity:1;transform:translateY(0)} -} -.step.status-stopped .step-dot{ - border-color:#94a3b8; - color:#64748b; - background:#f8fafc; - box-shadow:none!important; - animation:none!important; +.toast-layer{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;width:min(720px,calc(100vw - 24px));pointer-events:none} +.floating-toast{box-shadow:0 18px 40px rgba(15,23,42,.18);pointer-events:auto;animation:toast-enter .22s ease-out} +.operation-status.loading{background:#eef2ff;border-color:#c7d2fe;color:#3730a3} +@keyframes toast-enter{from{opacity:0;transform:translateY(-8px)} +to{opacity:1;transform:translateY(0)} } +.step.status-stopped .step-dot{border-color:#94a3b8;color:#64748b;background:#f8fafc;box-shadow:none!important;animation:none!important} .step.status-stopped:before{background:#d0d5dd} .step.status-running .step-dot{animation:step-running-pulse 1.25s ease-in-out infinite} - -/* v68: timeline auto-centering + stable activity feed */ -.timeline{ - scroll-behavior:smooth; - overscroll-behavior-x:contain; -} -.activity-feed.show-all{ - max-height:235px; - overflow-y:auto; -} - -/* v70: simpler events list and visible-only timeline scrolling */ +.timeline{scroll-behavior:smooth;overscroll-behavior-x:contain} +.activity-feed.show-all{max-height:235px;overflow-y:auto} .activity-feed.show-all{max-height:184px;overflow-y:auto;scrollbar-width:thin} .timeline{scroll-behavior:smooth} - -/* v71: compact timeline groups */ -@media (min-width:721px){ - .timeline{grid-template-columns:repeat(7,minmax(112px,1fr))} - .timeline .step{min-width:112px} -} - -/* v74: grouped timeline dots with circular substep progress */ -.timeline .step-dot{ - width:28px; - height:28px; - border:0; - background: - radial-gradient(circle at center,#fff 0 52%,transparent 54%), - conic-gradient(var(--blue) 0 var(--step-progress,0%),#d0d5dd var(--step-progress,0%) 100%); - box-shadow:inset 0 0 0 1px #cfd6e3; -} -.timeline .step-dot span{ - position:relative; - z-index:1; - width:18px; - height:18px; - border-radius:999px; - display:grid; - place-items:center; - margin:auto; - background:#fff; -} -.step.status-done .step-dot{ - background: - radial-gradient(circle at center,#fff 0 52%,transparent 54%), - conic-gradient(var(--green) 0 100%,#d0d5dd 100% 100%); -} -.step.status-running .step-dot{ - background: - radial-gradient(circle at center,#fff 0 52%,transparent 54%), - conic-gradient(var(--blue) 0 var(--step-progress,0%),#d0d5dd var(--step-progress,0%) 100%); -} -.step.status-failed .step-dot{ - background: - radial-gradient(circle at center,#fff 0 52%,transparent 54%), - conic-gradient(var(--red) 0 max(var(--step-progress,0%),8%),#fecaca max(var(--step-progress,0%),8%) 100%); -} -.step.status-stopped .step-dot{ - background: - radial-gradient(circle at center,#fff 0 52%,transparent 54%), - conic-gradient(#94a3b8 0 max(var(--step-progress,0%),8%),#d0d5dd max(var(--step-progress,0%),8%) 100%); -} -.step small{ - display:block; - margin-top:2px; - color:var(--muted); - font-size:9px; - line-height:1.15; -} -@media (min-width:721px){ - .timeline{grid-template-columns:repeat(11,minmax(92px,1fr))} - .timeline .step{min-width:92px} -} - -/* v75: stronger grouped timeline rings and 12 precise stages */ -.timeline .step-dot{ - width:32px; - height:32px; - padding:3px; - background:conic-gradient(var(--ring-color,var(--blue)) 0 var(--step-progress,0%),#d7dde7 var(--step-progress,0%) 100%); - box-shadow:0 0 0 1px #cfd6e3 inset,0 1px 2px rgba(15,23,42,.08); -} -.timeline .step-dot span{ - width:22px; - height:22px; - color:#475467; -} +@media (min-width:721px){.timeline{grid-template-columns:repeat(7,minmax(112px,1fr))} +.timeline .step{min-width:112px} +} +.timeline .step-dot{width:28px;height:28px;border:0;background:radial-gradient(circle at center,#fff 0 52%,transparent 54%),conic-gradient(var(--blue) 0 var(--step-progress,0%),#d0d5dd var(--step-progress,0%) 100%);box-shadow:inset 0 0 0 1px #cfd6e3} +.timeline .step-dot span{position:relative;z-index:1;width:18px;height:18px;border-radius:999px;display:grid;place-items:center;margin:auto;background:#fff} +.step.status-done .step-dot{background:radial-gradient(circle at center,#fff 0 52%,transparent 54%),conic-gradient(var(--green) 0 100%,#d0d5dd 100% 100%)} +.step.status-running .step-dot{background:radial-gradient(circle at center,#fff 0 52%,transparent 54%),conic-gradient(var(--blue) 0 var(--step-progress,0%),#d0d5dd var(--step-progress,0%) 100%)} +.step.status-failed .step-dot{background:radial-gradient(circle at center,#fff 0 52%,transparent 54%),conic-gradient(var(--red) 0 max(var(--step-progress,0%),8%),#fecaca max(var(--step-progress,0%),8%) 100%)} +.step.status-stopped .step-dot{background:radial-gradient(circle at center,#fff 0 52%,transparent 54%),conic-gradient(#94a3b8 0 max(var(--step-progress,0%),8%),#d0d5dd max(var(--step-progress,0%),8%) 100%)} +.step small{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.15} +@media (min-width:721px){.timeline{grid-template-columns:repeat(11,minmax(92px,1fr))} +.timeline .step{min-width:92px} +} +.timeline .step-dot{width:32px;height:32px;padding:3px;background:conic-gradient(var(--ring-color,var(--blue)) 0 var(--step-progress,0%),#d7dde7 var(--step-progress,0%) 100%);box-shadow:0 0 0 1px #cfd6e3 inset,0 1px 2px rgba(15,23,42,.08)} +.timeline .step-dot span{width:22px;height:22px;color:#475467} .step.status-done{--ring-color:var(--green)} .step.status-running{--ring-color:var(--blue)} .step.status-failed{--ring-color:var(--red)} .step.status-stopped{--ring-color:#64748b} .step.status-pending,.step.status-muted{--ring-color:#cbd5e1} .step.status-running .step-dot{animation:step-running-pulse 1.6s ease-in-out infinite} -@media (min-width:721px){ - .timeline{grid-template-columns:repeat(12,minmax(90px,1fr))} - .timeline .step{min-width:90px} +@media (min-width:721px){.timeline{grid-template-columns:repeat(12,minmax(90px,1fr))} +.timeline .step{min-width:90px} } - - .implementation-mode-help{margin:-4px 0 0;border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:8px 10px;font-size:11.5px;line-height:1.35} .implementation-mode-help strong{display:block;font-size:12px;margin-bottom:2px;color:#172554} .implementation-mode-help span{display:block} - .cost-note{margin:6px 0 2px;font-size:11px;line-height:1.35;color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:7px 9px} - -/* v76: coherent status color system */ .progress-bar>div.is-success{background:var(--green)} .progress-bar>div.is-error{background:var(--red)} .progress-bar>div.is-running-state{background:var(--blue)} @@ -521,343 +332,112 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .activity-row.recovered strong{color:#92400e} .activity-row.recovered p{color:#92400e} .activity-row.error strong{color:#be123c} - -/* v78: report preview is useful by itself */ - -/* v80: timeline failed-history / recovered feedback */ .step.status-warn{--ring-color:var(--amber)} .step.status-warn:before{background:var(--amber)} .step.status-warn .step-dot{--ring-color:var(--amber);color:#92400e} .step.status-warn small{color:#92400e} .top-actions .bucket-pill{display:none!important} - -/* v81: post-failure timeline state */ .step.status-after-fail{--ring-color:#94a3b8;opacity:.72} .step.status-after-fail:before{background:linear-gradient(90deg,var(--red) 0 35%,#cbd5e1 35% 100%)} .step.status-after-fail .step-dot{--ring-color:#94a3b8;color:#64748b} .step.status-after-fail small{color:#64748b} - -/* v82: explicit failure trace design */ -.timeline-trace-note{ - border:1px solid var(--line); - border-radius:12px; - padding:9px 11px; - display:grid; - gap:3px; - background:#fff; -} -.timeline-trace-note strong{ - display:flex; - align-items:center; - gap:7px; - font-size:12px; -} -.timeline-trace-note strong span{ - width:18px; - height:18px; - border-radius:999px; - display:grid; - place-items:center; - font-size:11px; - font-weight:900; -} -.timeline-trace-note p{ - margin:0; - font-size:11px; - line-height:1.35; - color:var(--muted); -} -.timeline-trace-note.failed{ - border-color:#fecdd3; - background:linear-gradient(180deg,#fff1f2 0%,#fff 100%); -} +.timeline-trace-note{border:1px solid var(--line);border-radius:12px;padding:9px 11px;display:grid;gap:3px;background:#fff} +.timeline-trace-note strong{display:flex;align-items:center;gap:7px;font-size:12px} +.timeline-trace-note strong span{width:18px;height:18px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:900} +.timeline-trace-note p{margin:0;font-size:11px;line-height:1.35;color:var(--muted)} +.timeline-trace-note.failed{border-color:#fecdd3;background:linear-gradient(180deg,#fff1f2 0%,#fff 100%)} .timeline-trace-note.failed strong{color:#be123c} .timeline-trace-note.failed strong span{background:#be123c;color:white} -.timeline-trace-note.recovered{ - border-color:#fed7aa; - background:linear-gradient(180deg,#fff7ed 0%,#fff 100%); -} +.timeline-trace-note.recovered{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed 0%,#fff 100%)} .timeline-trace-note.recovered strong{color:#92400e} .timeline-trace-note.recovered strong span{background:var(--amber);color:#78350f} -.timeline.trace-failed .step.trace-breakpoint{ - transform:translateY(-2px); -} -.timeline.trace-failed .step.trace-breakpoint:after, -.timeline.trace-recovered .step.trace-recovered:after{ - content:""; - position:absolute; - left:50%; - top:0; - transform:translateX(-50%); - width:2px; - height:44px; - border-radius:999px; - z-index:0; -} +.timeline.trace-failed .step.trace-breakpoint{transform:translateY(-2px)} +.timeline.trace-failed .step.trace-breakpoint:after,.timeline.trace-recovered .step.trace-recovered:after{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:2px;height:44px;border-radius:999px;z-index:0} .timeline.trace-failed .step.trace-breakpoint:after{background:var(--red)} .timeline.trace-recovered .step.trace-recovered:after{background:var(--amber)} -.timeline.trace-failed .step.trace-breakpoint .step-dot{ - box-shadow:0 0 0 5px #fff1f2,0 0 0 7px #fecdd3; -} -.timeline.trace-recovered .step.trace-recovered .step-dot{ - box-shadow:0 0 0 5px #fff7ed,0 0 0 7px #fed7aa; -} -.timeline.trace-failed .step.trace-post-failure{ - opacity:.58; -} -.timeline.trace-failed .step.trace-post-failure:before{ - background:repeating-linear-gradient(90deg,#cbd5e1 0 6px,transparent 6px 11px); -} -.timeline.trace-failed .step.trace-post-failure .step-dot{ - background: - repeating-linear-gradient(135deg,#f8fafc 0 4px,#e2e8f0 4px 8px); - color:#64748b; -} -.timeline.trace-failed .step.trace-post-failure strong, -.timeline.trace-failed .step.trace-post-failure small{ - color:#64748b; -} - -/* v84: hardware fallback is a routing decision, not an incident */ +.timeline.trace-failed .step.trace-breakpoint .step-dot{box-shadow:0 0 0 5px #fff1f2,0 0 0 7px #fecdd3} +.timeline.trace-recovered .step.trace-recovered .step-dot{box-shadow:0 0 0 5px #fff7ed,0 0 0 7px #fed7aa} +.timeline.trace-failed .step.trace-post-failure{opacity:.58} +.timeline.trace-failed .step.trace-post-failure:before{background:repeating-linear-gradient(90deg,#cbd5e1 0 6px,transparent 6px 11px)} +.timeline.trace-failed .step.trace-post-failure .step-dot{background:repeating-linear-gradient(135deg,#f8fafc 0 4px,#e2e8f0 4px 8px);color:#64748b} +.timeline.trace-failed .step.trace-post-failure strong,.timeline.trace-failed .step.trace-post-failure small{color:#64748b} .step.status-fallback{--ring-color:var(--blue)} .step.status-fallback:before{background:var(--blue)} .step.status-fallback .step-dot{--ring-color:var(--blue);color:var(--blue)} .step.status-fallback small{color:#1d4ed8} -.timeline-trace-note.fallback{ - border-color:#bfdbfe; - background:linear-gradient(180deg,#eff6ff 0%,#fff 100%); -} +.timeline-trace-note.fallback{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff 0%,#fff 100%)} .timeline-trace-note.fallback strong{color:#1d4ed8} .timeline-trace-note.fallback strong span{background:#1d4ed8;color:white} -.timeline.trace-fallback .step.trace-fallback:after{ - content:""; - position:absolute; - left:50%; - top:0; - transform:translateX(-50%); - width:2px; - height:44px; - border-radius:999px; - z-index:0; - background:#1d4ed8; -} -.timeline.trace-fallback .step.trace-fallback .step-dot{ - box-shadow:0 0 0 5px #eff6ff,0 0 0 7px #bfdbfe; -} +.timeline.trace-fallback .step.trace-fallback:after{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:2px;height:44px;border-radius:999px;z-index:0;background:#1d4ed8} +.timeline.trace-fallback .step.trace-fallback .step-dot{box-shadow:0 0 0 5px #eff6ff,0 0 0 7px #bfdbfe} .activity-row.hardware-fallback .activity-dot{background:var(--blue)} .activity-row.hardware-fallback strong{color:#1d4ed8} .activity-row.hardware-fallback p{color:#1d4ed8} - -/* v85: failure/fallback reasons */ -.timeline-trace-note .trace-reason{ - margin-top:4px; - padding:7px 8px; - border-radius:9px; - background:rgba(255,255,255,.72); - border:1px solid rgba(148,163,184,.25); - color:#344054; -} +.timeline-trace-note .trace-reason{margin-top:4px;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.25);color:#344054} .timeline-trace-note .trace-reason b{color:inherit} -.step .step-reason{ - margin-top:3px; - display:-webkit-box; - -webkit-line-clamp:2; - -webkit-box-orient:vertical; - overflow:hidden; - font-size:9px; - color:#475467; -} +.step .step-reason{margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:9px;color:#475467} .step.status-fallback .step-reason{color:#1d4ed8} .step.status-failed .step-reason{color:#be123c} .step.status-warn .step-reason{color:#92400e} -.activity-row .event-reason{ - margin-top:3px; - color:#475467; - font-size:10px; - line-height:1.3; -} +.activity-row .event-reason{margin-top:3px;color:#475467;font-size:10px;line-height:1.3} .activity-row.error .event-reason{color:#be123c} .activity-row.hardware-fallback .event-reason{color:#1d4ed8} - -/* v87: validation is a separate Space test workflow */ -.validation-help{ - margin:0 0 12px; - padding:8px 10px; - border:1px solid var(--line); - border-radius:10px; - background:#f8fafc; - font-size:11px; - line-height:1.35; -} +.validation-help{margin:0 0 12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-size:11px;line-height:1.35} .validation-result-card .badge.running{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe} .validation-result-card .badge.success{background:#ecfdf3;color:#027a48;border-color:#bbf7d0} .validation-result-card .badge.error{background:#fff1f2;color:#be123c;border-color:#fecdd3} - -/* v89: Space Test lives under Active Run in the center column */ -.active-run-panel + .space-test-panel{ - margin-top:0; -} -.workspace-grid > .space-test-panel{ - grid-column:2; -} -.workspace-grid > .runs-explorer-panel{ - grid-column:3; -} -.workspace-grid > .left-stack{ - grid-column:1; -} -.workspace-grid > .active-run-panel{ - grid-column:2; -} -.space-test-panel .space-test-grid{ - grid-template-columns:1fr; - gap:12px; -} -.space-test-panel .test-top-row{ - grid-template-columns:1fr 120px; -} -.space-test-panel .test-top-row label:first-child{ - grid-column:1 / -1; -} -.space-test-panel .editor-grid{ - grid-template-columns:1fr; -} -.space-test-panel .validation-grid{ - grid-template-columns:1fr 1fr; +.active-run-panel+.space-test-panel{margin-top:0} +.workspace-grid>.space-test-panel{grid-column:2} +.workspace-grid>.runs-explorer-panel{grid-column:3} +.workspace-grid>.left-stack{grid-column:1} +.workspace-grid>.active-run-panel{grid-column:2} +.space-test-panel .space-test-grid{grid-template-columns:1fr;gap:12px} +.space-test-panel .test-top-row{grid-template-columns:1fr 120px} +.space-test-panel .test-top-row label:first-child{grid-column:1 / -1} +.space-test-panel .editor-grid{grid-template-columns:1fr} +.space-test-panel .validation-grid{grid-template-columns:1fr 1fr} +@media (max-width:1180px){.workspace-grid>.left-stack{grid-column:1} +.center-stack{grid-column:2} +.workspace-grid>.runs-explorer-panel{grid-column:1 / -1} } -@media (max-width:1180px){ - .workspace-grid > .left-stack{grid-column:1} - .center-stack{grid-column:2} - .workspace-grid > .runs-explorer-panel{grid-column:1 / -1} -} - -/* v90: Pi/provider model mismatch warning */ .blockers strong:first-child{display:block} .blockers p code{font-size:11px} .activity-row.warning .event-reason,.activity-row.warn .event-reason{color:#92400e} - -/* v92: robust 3-column layout after moving Space Test */ -.workspace-grid{ - grid-template-columns:minmax(300px,360px) minmax(520px,1fr) minmax(340px,400px); - grid-auto-flow:row; -} -.center-stack{ - grid-column:2; - display:grid; - gap:14px; - min-width:0; -} -.workspace-grid > .left-stack{grid-column:1;min-width:0} -.workspace-grid > .runs-explorer-panel{grid-column:3;min-width:0} -.center-stack > .active-run-panel, -.center-stack > .space-test-panel{min-width:0} -.runs-explorer-panel, -.selected-run-card, -.space-test-panel, -.active-run-panel{overflow-wrap:normal;word-break:normal} -.runs-explorer-panel h2, -.runs-explorer-panel h3, -.space-test-panel h2, -.validation-help{ - white-space:normal; - word-break:normal; - overflow-wrap:break-word; -} -.space-test-panel .space-test-grid{ - grid-template-columns:1fr; -} -.space-test-panel .test-top-row{ - grid-template-columns:minmax(0,1fr) minmax(120px,140px); -} -.space-test-panel .test-top-row label:first-child{ - grid-column:1 / -1; -} -.space-test-panel .editor-grid{ - grid-template-columns:1fr; -} -.space-test-panel textarea{ - min-height:120px; -} -@media (max-width:1280px){ - .workspace-grid{ - grid-template-columns:minmax(280px,340px) minmax(520px,1fr); - } - .center-stack{grid-column:2} - .workspace-grid > .runs-explorer-panel{ - grid-column:1 / -1; - } -} -@media (max-width:920px){ - .workspace-grid{ - grid-template-columns:1fr; - } - .center-stack, - .workspace-grid > .left-stack, - .workspace-grid > .runs-explorer-panel{ - grid-column:1; - } -} - -/* v95: Active Run and Space Test share the center workspace as tabs */ -.center-tabs{ - display:grid; - grid-template-columns:1fr 1fr; - gap:8px; - padding:4px; - border:1px solid var(--line); - border-radius:14px; - background:#eef2f7; -} -.center-tab{ - border:1px solid transparent; - background:transparent; - color:#475467; - border-radius:10px; - padding:10px 12px; - font-weight:800; - display:flex; - align-items:center; - justify-content:center; - gap:8px; -} -.center-tab.active{ - background:#fff; - color:var(--text); - border-color:var(--line-strong); - box-shadow:0 4px 12px rgba(16,24,40,.06); -} +.workspace-grid{grid-template-columns:minmax(300px,360px) minmax(520px,1fr) minmax(340px,400px);grid-auto-flow:row} +.center-stack{grid-column:2;display:grid;gap:14px;min-width:0} +.workspace-grid>.left-stack{grid-column:1;min-width:0} +.workspace-grid>.runs-explorer-panel{grid-column:3;min-width:0} +.center-stack>.active-run-panel,.center-stack>.space-test-panel{min-width:0} +.runs-explorer-panel,.selected-run-card,.space-test-panel,.active-run-panel{overflow-wrap:normal;word-break:normal} +.runs-explorer-panel h2,.runs-explorer-panel h3,.space-test-panel h2,.validation-help{white-space:normal;word-break:normal;overflow-wrap:break-word} +.space-test-panel .space-test-grid{grid-template-columns:1fr} +.space-test-panel .test-top-row{grid-template-columns:minmax(0,1fr) minmax(120px,140px)} +.space-test-panel .test-top-row label:first-child{grid-column:1 / -1} +.space-test-panel .editor-grid{grid-template-columns:1fr} +.space-test-panel textarea{min-height:120px} +@media (max-width:1280px){.workspace-grid{grid-template-columns:minmax(280px,340px) minmax(520px,1fr)} +.center-stack{grid-column:2} +.workspace-grid>.runs-explorer-panel{grid-column:1 / -1} +} +@media (max-width:920px){.workspace-grid{grid-template-columns:1fr} +.center-stack,.workspace-grid>.left-stack,.workspace-grid>.runs-explorer-panel{grid-column:1} +} +.center-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px;border:1px solid var(--line);border-radius:14px;background:#eef2f7} +.center-tab{border:1px solid transparent;background:transparent;color:#475467;border-radius:10px;padding:10px 12px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px} +.center-tab.active{background:#fff;color:var(--text);border-color:var(--line-strong);box-shadow:0 4px 12px rgba(16,24,40,.06)} .center-tab-panel.active{display:grid} -.tab-status-dot{ - width:8px; - height:8px; - border-radius:999px; - background:#98a2b3; - display:inline-block; -} +.tab-status-dot{width:8px;height:8px;border-radius:999px;background:#98a2b3;display:inline-block} .tab-status-dot.running{background:var(--blue);box-shadow:0 0 0 4px #dbeafe} .tab-status-dot.success{background:var(--green)} .tab-status-dot.error{background:var(--red)} .tab-status-dot.warn{background:var(--amber)} .validation-result-card{position:relative;overflow:hidden} -.validation-result-card.is-validating::before{ - content:""; - position:absolute; - left:0; - right:0; - top:0; - height:3px; - background:linear-gradient(90deg,transparent,var(--blue),transparent); - animation:validation-scan 1.25s linear infinite; -} -@keyframes validation-scan{ - from{transform:translateX(-100%)} - to{transform:translateX(100%)} -} -@media (max-width:720px){ - .center-tabs{grid-template-columns:1fr} -} - -/* v96: validation runs render inside the Space Test tab instead of the Active Run timeline */ +.validation-result-card.is-validating::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--blue),transparent);animation:validation-scan 1.25s linear infinite} +@keyframes validation-scan{from{transform:translateX(-100%)} +to{transform:translateX(100%)} +} +@media (max-width:720px){.center-tabs{grid-template-columns:1fr} +} .run-row.validation-run{border-color:#bfdbfe;background:#f8fbff} .validation-progress-caption{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#344054;margin:8px 0 6px} .validation-progress-bar{height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-bottom:12px} @@ -873,15 +453,10 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .validation-step.running{border-color:#bfdbfe;background:#eff6ff} .validation-step.success{border-color:#bbf7d0;background:#ecfdf3} .validation-step.error{border-color:#fecdd3;background:#fff1f2} - -/* v97 central run actions */ .active-run-actions{margin:10px 0 12px} .active-run-actions .secondary.small{padding:8px 10px;font-size:12px} .validation-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px} .runs-explorer-panel .selected-run-card{display:none} - - -/* v103: aggregated run stats replace the ambiguous Run Health block */ .run-stats-card{margin-top:12px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);padding:12px} .run-stats-card h4{margin:0;font-size:13px} .run-stats-list{display:grid;gap:9px;margin-top:10px} @@ -895,10 +470,11 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .run-stat-cell.running{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff 0%,#fff 100%)} .run-stats-band{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;min-width:0} .run-stats-band strong{display:block;margin-top:6px;font-size:12px;line-height:1.25;color:#101828;overflow:hidden;text-overflow:ellipsis} -.run-stats-band.warn{border-color:#fed7aa;background:#fffaf3}.run-stats-band.success{border-color:#bbf7d0;background:#f0fdf4} -@media (max-width:420px){.run-stats-grid{grid-template-columns:1fr}.run-stat-cell strong{font-size:14px}} - -/* v99: discovered Gradio endpoints inside Space Test */ +.run-stats-band.warn{border-color:#fed7aa;background:#fffaf3} +.run-stats-band.success{border-color:#bbf7d0;background:#f0fdf4} +@media (max-width:420px){.run-stats-grid{grid-template-columns:1fr} +.run-stat-cell strong{font-size:14px} +} .validation-endpoints-card{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:10px} .validation-endpoints-card h4{margin:0;font-size:12px} .validation-endpoints-card .card-title-row .muted{font-size:10px} @@ -910,8 +486,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .endpoint-chip em{font-style:normal;font-size:9px;border-radius:999px;background:#fff;padding:2px 5px;color:#1d4ed8} .endpoint-params{margin:8px 0 0;color:#667085;font-size:11px;line-height:1.35} .compact-empty{font-size:11px;padding:6px 0;color:#667085} - -/* v159: horizontal source-document dock */ .run-documents-card{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)} .run-documents-card .card-title-row{align-items:center} .run-documents-card .card-title-row .muted{font-size:10.5px} @@ -930,14 +504,14 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .run-doc-btn.safe.ready .doc-icon{background:#eef2ff;border-color:#c7d2fe} .run-doc-btn.warn.ready{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed 0%,#fff 100%)} .run-doc-btn.warn.ready strong{color:#9a3412} - .run-doc-btn.pending-tone.ready{border-color:#dbeafe;background:linear-gradient(180deg,#f8fbff 0%,#fff 100%)} .run-doc-btn.pending-tone.ready::after{background:#94a3b8} .run-doc-btn.pending-tone.ready strong{color:#334155} .run-documents-dock .empty{min-width:100%} -@media (max-width:420px){.run-doc-btn{flex-basis:78px;min-height:88px;padding-left:7px;padding-right:7px}.run-doc-btn strong{font-size:11px}.run-doc-btn em{font-size:9px}} - -/* v102: narrow-safe run explorer, point-based validation progress */ +@media (max-width:420px){.run-doc-btn{flex-basis:78px;min-height:88px;padding-left:7px;padding-right:7px} +.run-doc-btn strong{font-size:11px} +.run-doc-btn em{font-size:9px} +} .runs-table{min-width:0} .run-row.run-card{grid-template-columns:minmax(0,1fr);align-items:flex-start} .run-card-title{flex-wrap:wrap;row-gap:4px} @@ -947,11 +521,11 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .run-card-side{width:100%;justify-self:stretch;justify-content:space-between;min-width:0} .run-card-side .pill{min-width:0;max-width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis} .icon-btn{flex:0 0 auto} -@media (min-width:380px){.run-card-side{justify-content:flex-start}} - +@media (min-width:380px){.run-card-side{justify-content:flex-start} +} .validation-timeline{display:flex;align-items:flex-start;gap:0;overflow-x:auto;margin:10px 0 14px;padding:4px 2px 8px;scrollbar-width:thin} .validation-step{position:relative;display:grid;grid-template-columns:1fr;justify-items:center;gap:5px;min-width:78px;border:0;background:transparent!important;border-radius:0;padding:0 8px;font-size:11px;color:#475467;text-align:center} -.validation-step:not(:last-child)::after{content:"";position:absolute;top:9px;left:calc(50% + 10px);right:calc(-50% + 10px);height:2px;background:#e5e7eb;z-index:0} +.validation-step:not(:last-child)::after{content:"";position:absolute;top:9px;left:calc(50%+10px);right:calc(-50%+10px);height:2px;background:#e5e7eb;z-index:0} .validation-step .dot{position:relative;z-index:1;width:18px;height:18px;border-radius:999px;border:2px solid #cbd5e1;background:#fff;box-shadow:0 0 0 4px #fff} .validation-step .dot.running{border-color:var(--blue);background:#dbeafe;animation:softPulse 1.25s ease-in-out infinite} .validation-step .dot.success{border-color:var(--green);background:#dcfce7} @@ -959,17 +533,10 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .validation-step .dot.warn{border-color:var(--amber);background:#ffedd5} .validation-step strong{font-size:10px;line-height:1.15;text-transform:none;max-width:82px;white-space:normal;color:#344054} .validation-step em{font-size:9px;line-height:1;color:#667085;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} -.validation-step.success strong{color:#166534}.validation-step.error strong{color:#be123c}.validation-step.running strong{color:#1d4ed8} - -/* v104: robust run cards, endpoint picker, event feed and Active Run latency */ -.run-row.run-card{ - display:grid; - grid-template-columns:minmax(0,1fr); - gap:10px; - padding:12px; - border-bottom:1px solid var(--line); - overflow:hidden; -} +.validation-step.success strong{color:#166534} +.validation-step.error strong{color:#be123c} +.validation-step.running strong{color:#1d4ed8} +.run-row.run-card{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px;border-bottom:1px solid var(--line);overflow:hidden} .run-row.run-card *{box-sizing:border-box;min-width:0} .run-card-main{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;align-items:start;width:100%;min-width:0} .run-card-copy{display:grid;gap:7px;min-width:0;overflow:hidden} @@ -984,7 +551,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .run-card-side{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;min-width:0} .run-card-side .pill{display:block;min-width:0;max-width:calc(100% - 42px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:0} .run-card-side .icon-btn{width:34px;height:28px;border-radius:999px;display:grid;place-items:center;padding:0;font-size:16px;line-height:1} - .validation-endpoints-card{background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)} .validation-endpoints-card .card-title-row{gap:8px;align-items:center} .endpoint-chip-list{gap:8px;margin-bottom:10px} @@ -995,7 +561,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .endpoint-selected-row span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:850;color:#64748b} .endpoint-selected-row strong{font-size:12px;color:#1d4ed8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .endpoint-params{margin:8px 0 0;padding:8px;border-radius:10px;background:#fff;border:1px solid #eef2f7;color:#667085;font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} - .active-latency-card{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)} .active-latency-card.has-latency{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff 0%,#fff 100%)} .active-latency-card .card-title-row .muted{font-size:10.5px} @@ -1004,7 +569,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .active-latency-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#98a2b3;font-weight:850} .active-latency-grid strong{display:block;margin-top:2px;font-size:15px;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .latency-note{margin:8px 0 0;color:#667085;font-size:11px;line-height:1.35} - .activity-feed{max-height:300px;overflow:auto;scrollbar-width:thin} .activity-row{grid-template-columns:62px 28px minmax(0,1fr) auto;align-items:start;padding:10px 0;gap:10px} .activity-row time{font-size:11px;white-space:nowrap;color:#667085;padding-top:4px} @@ -1019,17 +583,14 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .activity-copy p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;line-height:1.3} .activity-copy .event-reason{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:break-word} .activity-row>em{justify-self:end;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px} -@media (max-width:720px){.activity-row{grid-template-columns:54px 26px minmax(0,1fr)}.activity-row>em{display:none}.active-latency-grid{grid-template-columns:1fr}.endpoint-selected-row{grid-template-columns:1fr}.endpoint-selected-row .secondary{width:100%}} - -/* v105: UI cleanup, narrow cards and lighter event rendering */ -.run-row.run-card{ - border:1px solid var(--line); - border-radius:14px; - margin:8px 0; - background:#fff; - box-shadow:0 1px 2px rgba(16,24,40,.03); -} -.run-row.run-card + .run-row.run-card{border-top:1px solid var(--line)} +@media (max-width:720px){.activity-row{grid-template-columns:54px 26px minmax(0,1fr)} +.activity-row>em{display:none} +.active-latency-grid{grid-template-columns:1fr} +.endpoint-selected-row{grid-template-columns:1fr} +.endpoint-selected-row .secondary{width:100%} +} +.run-row.run-card{border:1px solid var(--line);border-radius:14px;margin:8px 0;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.03)} +.run-row.run-card+.run-row.run-card{border-top:1px solid var(--line)} .run-card-title{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%} .run-card-meta span{grid-template-columns:minmax(46px,max-content) minmax(0,1fr)} .run-card-meta span b::after{content:":"} @@ -1038,19 +599,16 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .run-card-side .pill{max-width:100%;font-size:10.5px;text-align:center} .run-card-side .icon-btn{background:#f8fafc;border-color:#e5e7eb;color:#667085} .run-card-side .icon-btn:hover{background:#fff1f2;border-color:#fecdd3;color:#be123c} -@media (max-width:420px){ - .run-row.run-card{padding:10px} - .run-card-main{grid-template-columns:8px minmax(0,1fr);gap:8px} - .run-card-title{grid-template-columns:minmax(0,1fr)} - .kind-chip{justify-self:start} - .run-card-side{padding-left:16px;display:grid;grid-template-columns:minmax(0,1fr) 34px} -} - +@media (max-width:420px){.run-row.run-card{padding:10px} +.run-card-main{grid-template-columns:8px minmax(0,1fr);gap:8px} +.run-card-title{grid-template-columns:minmax(0,1fr)} +.kind-chip{justify-self:start} +.run-card-side{padding-left:16px;display:grid;grid-template-columns:minmax(0,1fr) 34px} +} .endpoint-params{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;-webkit-line-clamp:unset} .endpoint-params>strong{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#64748b} .endpoint-params>span{display:flex;flex-wrap:wrap;gap:5px;min-width:0} .endpoint-params>span em{font-style:normal;font-size:10.5px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:999px;padding:2px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467} - .activity-feed{max-height:320px;overscroll-behavior:contain} .activity-row{border-bottom:1px solid #eef2f7} .activity-row:last-child{border-bottom:0} @@ -1058,8 +616,6 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .activity-copy p span,.activity-copy p em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal} .activity-copy p span{max-width:55%;color:#667085} .activity-copy p em{color:#98a2b3} - -/* v110: model pre-scan gate */ .model-prescan-card{border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:11px;display:grid;gap:9px;box-shadow:0 1px 2px rgba(16,24,40,.03)} .model-prescan-card.required{background:#f8fafc} .model-prescan-card.success{border-color:#bbf7d0;background:#f0fdf4} @@ -1067,20 +623,21 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .model-prescan-card.error{border-color:#fecdd3;background:#fff1f2} .model-prescan-card.running{border-color:#bfdbfe;background:#eff6ff} .model-prescan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0} -.model-prescan-head>div{min-width:0;display:grid;gap:2px}.model-prescan-head strong{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#64748b}.model-prescan-card p{margin:0;font-size:12px;line-height:1.35}.model-prescan-signals{display:grid;gap:8px}.model-prescan-signals>div{display:grid;gap:5px}.model-prescan-signals strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.model-prescan-signals span{display:block;border:1px solid #e5e7eb;background:rgba(255,255,255,.72);border-radius:9px;padding:5px 7px;font-size:11.5px;line-height:1.3;color:#344054}.model-prescan-signals span.good{border-color:#bbf7d0}.model-prescan-signals span.risk{border-color:#fed7aa}.model-risk-ack{display:flex!important;align-items:flex-start;gap:8px;border:1px dashed #fb7185;background:#fff;padding:8px;border-radius:10px;font-size:12px;color:#9f1239}.model-risk-ack input{margin-top:2px}.model-risk-ack[hidden]{display:none!important}#scanModel{justify-self:start} - -/* v112: final cohesion pass for production preview */ -.implementation-mode-help{ - display:grid; - gap:2px; - border:1px solid #eef2f7; - border-radius:10px; - background:#f8fafc; - padding:8px 10px; - font-size:11.5px; - line-height:1.35; - color:#667085; -} +.model-prescan-head>div{min-width:0;display:grid;gap:2px} +.model-prescan-head strong{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.mini-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#64748b} +.model-prescan-card p{margin:0;font-size:12px;line-height:1.35} +.model-prescan-signals{display:grid;gap:8px} +.model-prescan-signals>div{display:grid;gap:5px} +.model-prescan-signals strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b} +.model-prescan-signals span{display:block;border:1px solid #e5e7eb;background:rgba(255,255,255,.72);border-radius:9px;padding:5px 7px;font-size:11.5px;line-height:1.3;color:#344054} +.model-prescan-signals span.good{border-color:#bbf7d0} +.model-prescan-signals span.risk{border-color:#fed7aa} +.model-risk-ack{display:flex!important;align-items:flex-start;gap:8px;border:1px dashed #fb7185;background:#fff;padding:8px;border-radius:10px;font-size:12px;color:#9f1239} +.model-risk-ack input{margin-top:2px} +.model-risk-ack[hidden]{display:none!important} +#scanModel{justify-self:start} +.implementation-mode-help{display:grid;gap:2px;border:1px solid #eef2f7;border-radius:10px;background:#f8fafc;padding:8px 10px;font-size:11.5px;line-height:1.35;color:#667085} .implementation-mode-help strong{font-size:11.5px;color:#344054} .model-prescan-card,.bucket-status-card,.run-stats-card{min-width:0;overflow:hidden} .model-prescan-card p,.model-prescan-signals span{word-break:break-word} @@ -1090,187 +647,108 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .activity-feed,.validation-timeline{overscroll-behavior:contain} .endpoint-chip{min-width:0;overflow:hidden} .endpoint-chip span,.endpoint-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} -@media (max-width:560px){ - .model-prescan-head{display:grid;grid-template-columns:1fr;gap:6px} - .model-prescan-head .badge{justify-self:start} - .run-stats-card{padding:10px} +@media (max-width:560px){.model-prescan-head{display:grid;grid-template-columns:1fr;gap:6px} +.model-prescan-head .badge{justify-self:start} +.run-stats-card{padding:10px} } - -/* v113: clarity pass for billing, run cards, coded event icons and endpoint schema details */ .optional-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;margin-left:4px} .billing-simple{display:grid;grid-template-columns:1fr 1fr;gap:8px} .billing-simple div{border:1px solid var(--line);background:var(--soft);border-radius:11px;padding:9px 10px} .billing-simple span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900;margin-bottom:4px} -.billing-simple strong{font-size:12px;line-height:1.25}.billing-panel .link-btn.full{justify-content:center;width:100%} -.runs-table{display:grid;gap:10px}.run-row.run-card{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:14px!important;border:1px solid #e5e7eb!important;border-radius:18px!important;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;box-shadow:0 1px 2px rgba(16,24,40,.04)!important;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.run-row.run-card:hover{border-color:#bfdbfe!important;box-shadow:0 10px 24px rgba(15,23,42,.08)!important;transform:translateY(-1px)}.run-row.run-card.selected{border-color:#93c5fd!important;box-shadow:0 0 0 3px rgba(37,99,235,.09),0 10px 24px rgba(15,23,42,.08)!important}.run-card-top{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:10px;align-items:start}.run-card-title{display:grid!important;grid-template-columns:minmax(0, 1fr) auto!important;align-items:center;gap:8px;width:100%;min-width:0}.run-card-title .run-id{font-size:12.5px;line-height:1.25;color:#101828;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kind-chip{font-size:10px;font-style:normal;text-transform:uppercase;letter-spacing:.05em;font-weight:900;border-radius:999px;padding:4px 7px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.kind-chip.validation{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.run-delete-btn{width:30px!important;height:30px!important;border-radius:999px!important;background:#f8fafc!important;border:1px solid #e5e7eb!important;color:#667085!important}.run-delete-btn:hover{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important}.run-card-meta{display:grid!important;gap:7px!important;margin:0!important;overflow:visible!important}.run-meta-line{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:baseline;min-width:0}.run-meta-line span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#98a2b3;font-weight:900}.run-meta-line strong{font-size:12px;color:#344054;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.run-status-led{width:8px;height:8px;border-radius:999px;background:#cbd5e1;box-shadow:0 0 0 3px rgba(148,163,184,.12)}.run-status-led.success{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}.run-status-led.running{background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.run-status-led.warn{background:#d97706;box-shadow:0 0 0 3px rgba(217,119,6,.12)}.run-status-led.error{background:#e11d48;box-shadow:0 0 0 3px rgba(225,29,72,.12)}.run-card-footer .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px}.activity-row .activity-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;border:1px solid #e5e7eb;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:900;letter-spacing:-.02em;color:#475467}.activity-row.success .activity-icon{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.activity-row.running .activity-icon{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.activity-row.warning .activity-icon,.activity-row.warn .activity-icon{background:#fffbeb;border-color:#fde68a;color:#92400e}.activity-row.error .activity-icon{background:#fff1f2;border-color:#fecdd3;color:#be123c}.activity-row.hardware-fallback .activity-icon{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.endpoint-info-card{display:grid;gap:8px;margin-top:8px;padding:9px;border:1px solid #e5e7eb;background:#fff;border-radius:12px}.endpoint-io{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start}.endpoint-io>strong{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.endpoint-io>span{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.endpoint-io em{display:inline-grid;gap:1px;font-style:normal;font-size:10.5px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:10px;padding:4px 7px;max-width:100%;overflow:hidden}.endpoint-io em strong{font-size:11px;color:#344054;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-io em span{font-size:9px;color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-help{margin:8px 0 0;color:#667085;font-size:11px;line-height:1.35}.endpoint-selected-row button{white-space:nowrap}@media (max-width:520px){.billing-simple{grid-template-columns:1fr}.run-card-title{grid-template-columns:minmax(0,1fr)!important}.kind-chip{justify-self:start}.run-meta-line{grid-template-columns:56px minmax(0,1fr)}.endpoint-selected-row{grid-template-columns:1fr!important}.endpoint-io{grid-template-columns:1fr}} - -/* v114: premium vector icons for the main run activity feed */ -.activity-row .activity-icon{ - width:28px!important; - height:28px!important; - border-radius:9px!important; - display:grid!important; - place-items:center!important; - border:1px solid #e5e7eb!important; - background:#f8fafc!important; - color:#475467!important; - box-shadow:0 1px 2px rgba(16,24,40,.04)!important; - font-size:0!important; - flex:0 0 auto; -} -.activity-row .activity-icon svg{ - width:15px; - height:15px; - display:block; - fill:none; - stroke:currentColor; - stroke-width:2; - stroke-linecap:round; - stroke-linejoin:round; -} +.billing-simple strong{font-size:12px;line-height:1.25} +.billing-panel .link-btn.full{justify-content:center;width:100%} +.runs-table{display:grid;gap:10px} +.run-row.run-card{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:14px!important;border:1px solid #e5e7eb!important;border-radius:18px!important;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;box-shadow:0 1px 2px rgba(16,24,40,.04)!important;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease} +.run-row.run-card:hover{border-color:#bfdbfe!important;box-shadow:0 10px 24px rgba(15,23,42,.08)!important;transform:translateY(-1px)} +.run-row.run-card.selected{border-color:#93c5fd!important;box-shadow:0 0 0 3px rgba(37,99,235,.09),0 10px 24px rgba(15,23,42,.08)!important} +.run-card-top{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:10px;align-items:start} +.run-card-title{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;gap:8px;width:100%;min-width:0} +.run-card-title .run-id{font-size:12.5px;line-height:1.25;color:#101828;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.kind-chip{font-size:10px;font-style:normal;text-transform:uppercase;letter-spacing:.05em;font-weight:900;border-radius:999px;padding:4px 7px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe} +.kind-chip.validation{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe} +.run-delete-btn{width:30px!important;height:30px!important;border-radius:999px!important;background:#f8fafc!important;border:1px solid #e5e7eb!important;color:#667085!important} +.run-delete-btn:hover{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important} +.run-card-meta{display:grid!important;gap:7px!important;margin:0!important;overflow:visible!important} +.run-meta-line{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:baseline;min-width:0} +.run-meta-line span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#98a2b3;font-weight:900} +.run-meta-line strong{font-size:12px;color:#344054;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.run-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px} +.run-status-led{width:8px;height:8px;border-radius:999px;background:#cbd5e1;box-shadow:0 0 0 3px rgba(148,163,184,.12)} +.run-status-led.success{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)} +.run-status-led.running{background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)} +.run-status-led.warn{background:#d97706;box-shadow:0 0 0 3px rgba(217,119,6,.12)} +.run-status-led.error{background:#e11d48;box-shadow:0 0 0 3px rgba(225,29,72,.12)} +.run-card-footer .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px} +.activity-row .activity-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;border:1px solid #e5e7eb;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:900;letter-spacing:-.02em;color:#475467} +.activity-row.success .activity-icon{background:#ecfdf3;border-color:#bbf7d0;color:#166534} +.activity-row.running .activity-icon{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8} +.activity-row.warning .activity-icon,.activity-row.warn .activity-icon{background:#fffbeb;border-color:#fde68a;color:#92400e} +.activity-row.error .activity-icon{background:#fff1f2;border-color:#fecdd3;color:#be123c} +.activity-row.hardware-fallback .activity-icon{background:#eef2ff;border-color:#c7d2fe;color:#3730a3} +.endpoint-info-card{display:grid;gap:8px;margin-top:8px;padding:9px;border:1px solid #e5e7eb;background:#fff;border-radius:12px} +.endpoint-io{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start} +.endpoint-io>strong{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#64748b} +.endpoint-io>span{display:flex;flex-wrap:wrap;gap:6px;min-width:0} +.endpoint-io em{display:inline-grid;gap:1px;font-style:normal;font-size:10.5px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:10px;padding:4px 7px;max-width:100%;overflow:hidden} +.endpoint-io em strong{font-size:11px;color:#344054;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.endpoint-io em span{font-size:9px;color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.endpoint-help{margin:8px 0 0;color:#667085;font-size:11px;line-height:1.35} +.endpoint-selected-row button{white-space:nowrap} +@media (max-width:520px){.billing-simple{grid-template-columns:1fr} +.run-card-title{grid-template-columns:minmax(0,1fr)!important} +.kind-chip{justify-self:start} +.run-meta-line{grid-template-columns:56px minmax(0,1fr)} +.endpoint-selected-row{grid-template-columns:1fr!important} +.endpoint-io{grid-template-columns:1fr} +} +.activity-row .activity-icon{width:28px!important;height:28px!important;border-radius:9px!important;display:grid!important;place-items:center!important;border:1px solid #e5e7eb!important;background:#f8fafc!important;color:#475467!important;box-shadow:0 1px 2px rgba(16,24,40,.04)!important;font-size:0!important;flex:0 0 auto} +.activity-row .activity-icon svg{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} .activity-row.running .activity-icon{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important} .activity-row.success .activity-icon{background:#ecfdf3!important;border-color:#bbf7d0!important;color:#166534!important} .activity-row.warning .activity-icon,.activity-row.warn .activity-icon{background:#fffbeb!important;border-color:#fde68a!important;color:#92400e!important} .activity-row.error .activity-icon{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important} .activity-row.hardware-fallback .activity-icon{background:#eef2ff!important;border-color:#c7d2fe!important;color:#3730a3!important} .activity-row .activity-icon[data-event-icon="clock"] svg{animation:activity-spin 1.1s linear infinite;transform-origin:center} -@keyframes activity-spin{to{transform:rotate(360deg)}} - -/* v116: compact premium Run Explorer list + billing note relocation */ -.billing-panel{display:grid;gap:10px} -.billing-cost-note{ - border:1px solid #fed7aa; - background:#fff7ed; - color:#7c2d12; - border-radius:12px; - padding:9px 10px; - font-size:11.5px; - line-height:1.38; +@keyframes activity-spin{to{transform:rotate(360deg)} } +.billing-panel{display:grid;gap:10px} +.billing-cost-note{border:1px solid #fed7aa;background:#fff7ed;color:#7c2d12;border-radius:12px;padding:9px 10px;font-size:11.5px;line-height:1.38} .billing-simple{grid-template-columns:1fr 1fr} .billing-note{margin:0;font-size:11.5px;line-height:1.35} -.runs-table{ - display:grid!important; - gap:0!important; - border:1px solid #e5e7eb!important; - border-radius:18px!important; - overflow:hidden!important; - background:#fff!important; -} -.run-row.run-list-item{ - display:grid!important; - grid-template-columns:12px minmax(0,1fr) auto 28px!important; - gap:12px!important; - align-items:center!important; - padding:13px 12px!important; - min-width:0!important; - border:0!important; - border-radius:0!important; - background:#fff!important; - box-shadow:none!important; - cursor:pointer; - transition:background .14s ease,box-shadow .14s ease; -} -.run-row.run-list-item + .run-row.run-list-item{border-top:1px solid #eef2f7!important} +.runs-table{display:grid!important;gap:0!important;border:1px solid #e5e7eb!important;border-radius:18px!important;overflow:hidden!important;background:#fff!important} +.run-row.run-list-item{display:grid!important;grid-template-columns:12px minmax(0,1fr) auto 28px!important;gap:12px!important;align-items:center!important;padding:13px 12px!important;min-width:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;cursor:pointer;transition:background .14s ease,box-shadow .14s ease} +.run-row.run-list-item+.run-row.run-list-item{border-top:1px solid #eef2f7!important} .run-row.run-list-item:hover{background:#f8fbff!important;transform:none!important;box-shadow:none!important} -.run-row.run-list-item.selected{ - background:linear-gradient(90deg,rgba(37,99,235,.08),rgba(255,255,255,0) 38%)!important; - box-shadow:inset 3px 0 0 #60a5fa!important; -} -.run-list-dot{ - width:8px; - height:8px; - border-radius:999px; - background:#cbd5e1; - box-shadow:0 0 0 3px rgba(148,163,184,.12); - justify-self:center; -} +.run-row.run-list-item.selected{background:linear-gradient(90deg,rgba(37,99,235,.08),rgba(255,255,255,0) 38%)!important;box-shadow:inset 3px 0 0 #60a5fa!important} +.run-list-dot{width:8px;height:8px;border-radius:999px;background:#cbd5e1;box-shadow:0 0 0 3px rgba(148,163,184,.12);justify-self:center} .run-list-dot.success{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)} .run-list-dot.running{background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)} .run-list-dot.warn,.run-list-dot.warning{background:#d97706;box-shadow:0 0 0 3px rgba(217,119,6,.12)} .run-list-dot.error{background:#e11d48;box-shadow:0 0 0 3px rgba(225,29,72,.12)} .run-list-copy{display:grid;gap:3px;min-width:0} .run-list-head{display:flex;align-items:center;gap:8px;min-width:0} -.run-list-title{ - min-width:0; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - color:#101828; - font-size:13.5px; - line-height:1.2; - font-weight:800; -} -.run-list-kind{ - flex:0 0 auto; - border:1px solid #dbeafe; - background:#eff6ff; - color:#1d4ed8; - border-radius:999px; - padding:2px 6px; - font-size:9.5px; - line-height:1.2; - letter-spacing:.06em; - text-transform:uppercase; - font-weight:900; -} +.run-list-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#101828;font-size:13.5px;line-height:1.2;font-weight:800} +.run-list-kind{flex:0 0 auto;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:2px 6px;font-size:9.5px;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;font-weight:900} .run-list-kind.validation{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9} -.run-list-sub, -.run-list-id{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.run-list-sub,.run-list-id{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .run-list-sub{font-size:12px;line-height:1.25;color:#475467;font-weight:600} .run-list-id{font-size:10.5px;line-height:1.2;color:#98a2b3;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace} .run-list-status{display:grid;justify-items:end;gap:4px;min-width:86px} .run-list-status time{font-size:11px;color:#667085;white-space:nowrap;font-weight:650} -.run-status-pill{ - display:inline-flex; - max-width:110px; - align-items:center; - justify-content:center; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - border-radius:999px; - padding:4px 8px; - font-size:10.5px; - line-height:1; - font-style:normal; - font-weight:850; - text-transform:none; - border:1px solid #e5e7eb; - background:#f8fafc; - color:#475467; -} +.run-status-pill{display:inline-flex;max-width:110px;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:10.5px;line-height:1;font-style:normal;font-weight:850;text-transform:none;border:1px solid #e5e7eb;background:#f8fafc;color:#475467} .run-status-pill.success{background:#ecfdf3;border-color:#bbf7d0;color:#166534} .run-status-pill.running{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8} .run-status-pill.warn,.run-status-pill.warning{background:#fffbeb;border-color:#fde68a;color:#92400e} .run-status-pill.error{background:#fff1f2;border-color:#fecdd3;color:#be123c} -.run-row.run-list-item .run-delete-btn{ - width:28px!important; - height:28px!important; - border-radius:999px!important; - background:#fff!important; - border:1px solid #e5e7eb!important; - color:#98a2b3!important; - display:grid!important; - place-items:center!important; - padding:0!important; - font-size:15px!important; -} +.run-row.run-list-item .run-delete-btn{width:28px!important;height:28px!important;border-radius:999px!important;background:#fff!important;border:1px solid #e5e7eb!important;color:#98a2b3!important;display:grid!important;place-items:center!important;padding:0!important;font-size:15px!important} .run-row.run-list-item .run-delete-btn:hover{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important} -@media (max-width:520px){ - .run-row.run-list-item{grid-template-columns:10px minmax(0,1fr) 28px!important;gap:9px!important;padding:12px 10px!important} - .run-list-status{grid-column:2;grid-row:2;display:flex;justify-content:space-between;justify-items:stretch;min-width:0;width:100%} - .run-list-title{font-size:12.5px} - .run-list-kind{display:none} - .run-list-id{display:none} -} - - -/* v120: visible Agent recovery protocol for Pi diagnosis/rebuild/repair phases */ -.agent-recovery-card{ - background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); - border-color:#dbeafe; +@media (max-width:520px){.run-row.run-list-item{grid-template-columns:10px minmax(0,1fr) 28px!important;gap:9px!important;padding:12px 10px!important} +.run-list-status{grid-column:2;grid-row:2;display:flex;justify-content:space-between;justify-items:stretch;min-width:0;width:100%} +.run-list-title{font-size:12.5px} +.run-list-kind{display:none} +.run-list-id{display:none} } +.agent-recovery-card{background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border-color:#dbeafe} .agent-recovery-card[hidden]{display:none!important} .agent-recovery-body{display:grid;gap:10px;margin-top:8px} .recovery-summary{border:1px solid #e5e7eb;background:#fff;border-radius:13px;padding:10px 11px} @@ -1296,171 +774,48 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .recovery-docs a.warn{border-color:#fed7aa;background:#fff7ed;color:#c2410c} .recovery-docs a.raw{border-color:#fecdd3;background:#fff1f2;color:#be123c} .run-doc-btn .doc-icon{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:900} -@media (max-width:720px){.recovery-ladder,.recovery-meta{grid-template-columns:1fr 1fr}} -@media (max-width:480px){.recovery-ladder,.recovery-meta{grid-template-columns:1fr}} - -/* v124: stabilization override for timeline and compact Run Explorer. - Keep this block at the end so older pass-specific rules cannot reintroduce - wrapping timeline dots or overflowing run badges. */ -@media (min-width:721px){ - .timeline{ - display:grid!important; - grid-auto-flow:column!important; - grid-auto-rows:auto!important; - align-items:start!important; - gap:0!important; - overflow-x:auto!important; - overflow-y:hidden!important; - scroll-behavior:auto!important; - scrollbar-width:thin; - padding-bottom:6px!important; - } - .timeline .step{ - min-width:96px!important; - max-width:none!important; - } -} -.timeline .step{min-width:0;contain:layout paint;} -.timeline .step strong{ - display:-webkit-box; - -webkit-line-clamp:2; - -webkit-box-orient:vertical; - overflow:hidden; - text-overflow:ellipsis; - min-height:2.3em; - word-break:normal; -} -.timeline .step small{ - max-width:92px; - margin-left:auto; - margin-right:auto; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.step.status-running .step-dot{animation:none!important;} -.step.status-changed .step-dot,.step-dot.dot-pop{animation:none!important;} - -.run-row.run-list-item{ - grid-template-columns:10px minmax(0,1fr) minmax(72px,88px) 26px!important; - gap:10px!important; - padding:12px 12px!important; -} -.run-list-head{gap:6px!important;} -.run-list-title{font-size:13px!important;font-weight:760!important;} -.run-list-kind, -.run-list-kind.validation, -.run-list-kind.build{ - border-color:#d0d5dd!important; - background:#f8fafc!important; - color:#475467!important; - font-size:9px!important; - letter-spacing:.055em!important; - padding:2px 6px!important; - max-width:56px!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - white-space:nowrap!important; -} -.run-list-sub{font-size:11.5px!important;color:#475467!important;font-weight:560!important;} -.run-list-id{font-size:10px!important;color:#98a2b3!important;} -.run-list-status{min-width:0!important;width:100%;display:grid!important;justify-items:end!important;gap:4px!important;} -.run-status-pill{ - max-width:82px!important; - min-width:0!important; - padding:4px 8px!important; - font-size:10px!important; - line-height:1!important; - white-space:nowrap!important; - overflow:hidden!important; - text-overflow:ellipsis!important; -} -.run-list-status time{font-size:10.5px!important;} -.run-row.run-list-item .run-delete-btn{width:26px!important;height:26px!important;font-size:14px!important;} -@media (max-width:520px){ - .run-row.run-list-item{grid-template-columns:10px minmax(0,1fr) 26px!important;} - .run-list-status{grid-column:2!important;grid-row:2!important;display:flex!important;justify-content:space-between!important;} -} - - - -/* v125 — stable product timeline and compact run selection refresh */ -.timeline{ - display:grid; - grid-auto-flow:column; - grid-auto-columns:minmax(82px,1fr); - grid-template-columns:none!important; - gap:0; - align-items:start; - overflow-x:auto; - overflow-y:hidden; - padding-bottom:2px; - scrollbar-width:thin; - scroll-behavior:auto!important; - contain:layout paint; -} -.timeline .step{ - min-width:82px; - max-width:132px; - padding-top:8px; -} -.timeline .step strong{ - display:block; - max-width:100%; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - font-size:10.5px; - letter-spacing:0; -} -.timeline .step small{ - display:none!important; -} -.timeline .step.running .step-dot{ - animation:none!important; -} -.timeline .step.failed .step-dot, -.timeline .step.blocked .step-dot{ - background:#fff1f2; - border-color:var(--red); - color:var(--red); -} -.timeline .step.failed:before, -.timeline .step.blocked:before{ - background:linear-gradient(90deg,var(--green) 0 50%,#fecdd3 50%); -} -@media (max-width:900px){ - .timeline .step{min-width:88px} -} - -.runs-table{ - overflow:hidden; -} -.run-list-item{ - grid-template-columns:10px minmax(0,1fr) minmax(74px,auto) 26px!important; - padding:11px 12px!important; -} -.run-list-kind{ - border-color:#e2e8f0!important; - background:#f8fafc!important; - color:#475467!important; - max-width:62px; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} +@media (max-width:720px){.recovery-ladder,.recovery-meta{grid-template-columns:1fr 1fr} +} +@media (max-width:480px){.recovery-ladder,.recovery-meta{grid-template-columns:1fr} +} +@media (min-width:721px){.timeline{display:grid!important;grid-auto-flow:column!important;grid-auto-rows:auto!important;align-items:start!important;gap:0!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-behavior:auto!important;scrollbar-width:thin;padding-bottom:6px!important} +.timeline .step{min-width:96px!important;max-width:none!important} +} +.timeline .step{min-width:0;contain:layout paint} +.timeline .step strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;min-height:2.3em;word-break:normal} +.timeline .step small{max-width:92px;margin-left:auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.step.status-running .step-dot{animation:none!important} +.step.status-changed .step-dot,.step-dot.dot-pop{animation:none!important} +.run-row.run-list-item{grid-template-columns:10px minmax(0,1fr) minmax(72px,88px) 26px!important;gap:10px!important;padding:12px 12px!important} +.run-list-head{gap:6px!important} +.run-list-title{font-size:13px!important;font-weight:760!important} +.run-list-kind,.run-list-kind.validation,.run-list-kind.build{border-color:#d0d5dd!important;background:#f8fafc!important;color:#475467!important;font-size:9px!important;letter-spacing:.055em!important;padding:2px 6px!important;max-width:56px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important} +.run-list-sub{font-size:11.5px!important;color:#475467!important;font-weight:560!important} +.run-list-id{font-size:10px!important;color:#98a2b3!important} +.run-list-status{min-width:0!important;width:100%;display:grid!important;justify-items:end!important;gap:4px!important} +.run-status-pill{max-width:82px!important;min-width:0!important;padding:4px 8px!important;font-size:10px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important} +.run-list-status time{font-size:10.5px!important} +.run-row.run-list-item .run-delete-btn{width:26px!important;height:26px!important;font-size:14px!important} +@media (max-width:520px){.run-row.run-list-item{grid-template-columns:10px minmax(0,1fr) 26px!important} +.run-list-status{grid-column:2!important;grid-row:2!important;display:flex!important;justify-content:space-between!important} +} +.timeline{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(82px,1fr);grid-template-columns:none!important;gap:0;align-items:start;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin;scroll-behavior:auto!important;contain:layout paint} +.timeline .step{min-width:82px;max-width:132px;padding-top:8px} +.timeline .step strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;letter-spacing:0} +.timeline .step small{display:none!important} +.timeline .step.running .step-dot{animation:none!important} +.timeline .step.failed .step-dot,.timeline .step.blocked .step-dot{background:#fff1f2;border-color:var(--red);color:var(--red)} +.timeline .step.failed:before,.timeline .step.blocked:before{background:linear-gradient(90deg,var(--green) 0 50%,#fecdd3 50%)} +@media (max-width:900px){.timeline .step{min-width:88px} +} +.runs-table{overflow:hidden} +.run-list-item{grid-template-columns:10px minmax(0,1fr) minmax(74px,auto) 26px!important;padding:11px 12px!important} +.run-list-kind{border-color:#e2e8f0!important;background:#f8fafc!important;color:#475467!important;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .run-list-status{min-width:74px!important} -.run-status-pill{ - max-width:82px!important; - min-width:0; - padding:4px 7px!important; - font-size:10px!important; -} +.run-status-pill{max-width:82px!important;min-width:0;padding:4px 7px!important;font-size:10px!important} .run-list-title{font-size:13px!important} .run-list-sub{font-size:11.5px!important} .run-list-id{font-size:10px!important} - -/* v127 — billing as actionable compute checklist */ .billing-readiness{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px} .billing-ready-card{border:1px solid var(--line);border-radius:11px;background:#fff;padding:9px;display:grid;gap:2px} .billing-ready-card span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em} @@ -1471,257 +826,76 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .billing-compute-checklist strong{font-size:11px;color:#344054;white-space:nowrap} .billing-compute-checklist span{font-size:11px;color:#667085;line-height:1.28} .billing-panel .billing-note{font-size:11px;line-height:1.35;margin:8px 0 10px} -@media (max-width:720px){.billing-readiness{grid-template-columns:1fr}.billing-compute-checklist div{grid-template-columns:1fr}} - -/* v128 — intentionally simple billing warning */ -.billing-panel{display:grid;gap:10px} -.billing-warning-simple{ - border:1px solid #fed7aa; - background:#fff7ed; - color:#7c2d12; - border-radius:12px; - padding:11px 12px; -} -.billing-warning-simple strong{ - display:block; - margin-bottom:4px; - color:#9a3412; - font-size:13px; -} -.billing-warning-simple p{ - margin:0; - font-size:12px; - line-height:1.4; +@media (max-width:720px){.billing-readiness{grid-template-columns:1fr} +.billing-compute-checklist div{grid-template-columns:1fr} } +.billing-panel{display:grid;gap:10px} +.billing-warning-simple{border:1px solid #fed7aa;background:#fff7ed;color:#7c2d12;border-radius:12px;padding:11px 12px} +.billing-warning-simple strong{display:block;margin-bottom:4px;color:#9a3412;font-size:13px} +.billing-warning-simple p{margin:0;font-size:12px;line-height:1.4} .billing-panel .link-btn.full{justify-content:center;width:100%} - -/* v129 — restore clear current-step pulse without layout flicker */ -.timeline .step.running .step-dot{ - animation: timeline-current-pulse 1.4s ease-in-out infinite!important; - box-shadow:0 0 0 0 rgba(37,99,235,.24); -} -@keyframes timeline-current-pulse{ - 0%{box-shadow:0 0 0 0 rgba(37,99,235,.24)} - 70%{box-shadow:0 0 0 8px rgba(37,99,235,0)} - 100%{box-shadow:0 0 0 0 rgba(37,99,235,0)} -} -.run-doc-btn.pending{ - pointer-events:none; - opacity:.54; -} -.run-doc-btn.pending .doc-icon{ - filter:grayscale(1); -} - -/* v147 — UI/UX verification polish */ -.run-delete-btn[disabled], -.run-delete-btn[aria-disabled="true"]{ - opacity:.34; - cursor:not-allowed; - filter:grayscale(1); -} -.run-delete-btn[disabled]:hover, -.run-delete-btn[aria-disabled="true"]:hover{ - transform:none; - box-shadow:none; -} -.endpoint-chip-list{ - align-items:center; -} -.endpoint-info-card{ - overflow-wrap:anywhere; -} - -/* v149 — align compact timeline classes with JS status-* classes */ +.timeline .step.running .step-dot{animation:timeline-current-pulse 1.4s ease-in-out infinite!important;box-shadow:0 0 0 0 rgba(37,99,235,.24)} +@keyframes timeline-current-pulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.24)} +70%{box-shadow:0 0 0 8px rgba(37,99,235,0)} +100%{box-shadow:0 0 0 0 rgba(37,99,235,0)} +} +.run-doc-btn.pending{pointer-events:none;opacity:.54} +.run-doc-btn.pending .doc-icon{filter:grayscale(1)} +.run-delete-btn[disabled],.run-delete-btn[aria-disabled="true"]{opacity:.34;cursor:not-allowed;filter:grayscale(1)} +.run-delete-btn[disabled]:hover,.run-delete-btn[aria-disabled="true"]:hover{transform:none;box-shadow:none} +.endpoint-chip-list{align-items:center} +.endpoint-info-card{overflow-wrap:anywhere} .step.status-done:before{background:var(--green)} .step.status-done .step-dot{background:var(--green);border-color:var(--green);color:#fff} .step.status-running:before,.step.status-waiting:before{background:linear-gradient(90deg,var(--green) 0 50%,#d0d5dd 50%)} -.step.status-running .step-dot,.step.status-waiting .step-dot{ - border-color:var(--blue); - color:var(--blue); - background:#fff; - box-shadow:0 0 0 4px #eff6ff; - animation:step-running-pulse 1.25s ease-in-out infinite; -} -.step.status-failed:before,.step.status-stopped:before,.step.status-after-fail:before{ - background:linear-gradient(90deg,var(--green) 0 50%,var(--red) 50%); -} +.step.status-running .step-dot,.step.status-waiting .step-dot{border-color:var(--blue);color:var(--blue);background:#fff;box-shadow:0 0 0 4px #eff6ff;animation:step-running-pulse 1.25s ease-in-out infinite} +.step.status-failed:before,.step.status-stopped:before,.step.status-after-fail:before{background:linear-gradient(90deg,var(--green) 0 50%,var(--red) 50%)} .step.status-after-fail:before{background:var(--red)} -.step.status-failed .step-dot,.step.status-stopped .step-dot,.step.status-after-fail .step-dot{ - border-color:var(--red); - color:var(--red); - background:#fff; -} -.step.status-fallback .step-dot,.step.status-warn .step-dot{ - border-color:var(--amber); - color:#92400e; - background:#fffbeb; -} +.step.status-failed .step-dot,.step.status-stopped .step-dot,.step.status-after-fail .step-dot{border-color:var(--red);color:var(--red);background:#fff} +.step.status-fallback .step-dot,.step.status-warn .step-dot{border-color:var(--amber);color:#92400e;background:#fffbeb} .timeline.trace-failed .step.trace-post-failure:before{background:var(--red)} .timeline.trace-failed .step.trace-breakpoint:before{background:linear-gradient(90deg,var(--green) 0 50%,var(--red) 50%)} - -/* v151 — UI refresh and layout stabilization */ -.workspace-grid{ - grid-template-columns:minmax(340px,410px) minmax(520px,1fr) minmax(340px,400px); -} -@media (max-width:1280px){ - .workspace-grid{ - grid-template-columns:minmax(320px,380px) minmax(520px,1fr); - } -} -#billingPanel{ - margin-top:14px; -} -.step.status-running .step-dot::after, -.step.status-waiting .step-dot::after, -.step.running .step-dot::after{ - content:""; - position:absolute; - inset:-9px; - border-radius:999px; - border:2px solid rgba(37,99,235,.25); - animation:step-ring-pulse 1.2s ease-out infinite; - pointer-events:none; -} -@keyframes step-ring-pulse{ - 0%{transform:scale(.72);opacity:.9} - 70%{transform:scale(1.35);opacity:0} - 100%{transform:scale(1.35);opacity:0} -} -.active-meta{ - grid-template-columns:repeat(3,minmax(0,1fr)); -} -.event-origin{ - text-transform:uppercase; - letter-spacing:.05em; - font-size:9px; - font-weight:900; - border-radius:999px; - padding:2px 6px; - background:#f2f4f7; - color:#475467; - justify-self:start; +.workspace-grid{grid-template-columns:minmax(340px,410px) minmax(520px,1fr) minmax(340px,400px)} +@media (max-width:1280px){.workspace-grid{grid-template-columns:minmax(320px,380px) minmax(520px,1fr)} } +#billingPanel{margin-top:14px} +.step.status-running .step-dot::after,.step.status-waiting .step-dot::after,.step.running .step-dot::after{content:"";position:absolute;inset:-9px;border-radius:999px;border:2px solid rgba(37,99,235,.25);animation:step-ring-pulse 1.2s ease-out infinite;pointer-events:none} +@keyframes step-ring-pulse{0%{transform:scale(.72);opacity:.9} +70%{transform:scale(1.35);opacity:0} +100%{transform:scale(1.35);opacity:0} +} +.active-meta{grid-template-columns:repeat(3,minmax(0,1fr))} +.event-origin{text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:900;border-radius:999px;padding:2px 6px;background:#f2f4f7;color:#475467;justify-self:start} .event-origin.pi{background:#eef2ff;color:#4f46e5} .event-origin.job{background:#eff6ff;color:#2563eb} .event-origin.space{background:#fff7ed;color:#c2410c} .event-origin.gradio{background:#ecfdf3;color:#047857} .event-origin.factory{background:#f8fafc;color:#344054} - -/* v152 — pending-field feedback, trace/recovery UI polish */ -.active-meta strong.is-pending{ - color:#98a2b3; - position:relative; -} -.active-meta strong.is-pending::after{ - content:""; - display:inline-block; - width:1.1em; - text-align:left; - animation:pending-dots 1.2s steps(4,end) infinite; -} -@keyframes pending-dots{ - 0%{content:""} - 25%{content:"."} - 50%{content:".."} - 75%,100%{content:"..."} -} -.step.trace-breakpoint.status-failed:before, -.step.trace-breakpoint.status-stopped:before{ - background:linear-gradient(90deg,var(--green) 0 calc(50% - 1px),var(--red) calc(50% - 1px) 100%); -} -.step.trace-post-failure.status-pending .step-dot, -.step.trace-post-failure.status-muted .step-dot{ - border-color:var(--red); - color:var(--red); - background:#fff5f5; -} -.step.trace-post-failure.status-pending:before, -.step.trace-post-failure.status-muted:before{ - background:var(--red); -} - -/* v153 — visual stability and premium polish */ -.loading-shimmer{ - position:relative; - overflow:hidden; -} -.loading-shimmer::after{ - content:""; - position:absolute; - inset:0; - transform:translateX(-100%); - background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent); - animation:shimmer-pass 1.3s ease-in-out infinite; -} -@keyframes shimmer-pass{100%{transform:translateX(100%)}} -#activeLatencyCard.is-loading{ - opacity:.78; -} -.timeline.trace-failed .step.trace-breakpoint{ - transform:none; -} -.timeline.trace-failed .step.trace-breakpoint .step-dot, -.timeline.trace-recovered .step.trace-recovered .step-dot{ - width:28px; - height:28px; - min-width:28px; -} -.timeline.trace-failed .step.trace-breakpoint:after, -.timeline.trace-recovered .step.trace-recovered:after{ - top:2px; - height:40px; -} -.endpoint-meta{ - display:flex; - gap:8px; - flex-wrap:wrap; - margin-bottom:8px; -} -.endpoint-meta span{ - border:1px solid var(--rule); - border-radius:999px; - padding:3px 8px; - background:#fff; - color:var(--muted); - font-size:11px; - font-weight:800; -} -.endpoint-param span{ - display:block; - opacity:.7; - margin-top:2px; -} -.prescan-meta{ - display:grid!important; - grid-template-columns:repeat(3,minmax(0,1fr)); - gap:8px!important; - margin-bottom:8px; -} -.prescan-meta span{ - border:1px solid var(--rule); - border-radius:12px; - padding:8px 10px; - background:#fff; -} -.prescan-meta em{ - display:block; - font-size:10px; - text-transform:uppercase; - letter-spacing:.06em; - color:var(--muted); - font-style:normal; - font-weight:900; -} -.prescan-meta strong{ - display:block; - margin-top:3px; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} - -/* v160 premium destructive action modal */ +.active-meta strong.is-pending{color:#98a2b3;position:relative} +.active-meta strong.is-pending::after{content:"";display:inline-block;width:1.1em;text-align:left;animation:pending-dots 1.2s steps(4,end) infinite} +@keyframes pending-dots{0%{content:""} +25%{content:"."} +50%{content:".."} +75%,100%{content:"..."} +} +.step.trace-breakpoint.status-failed:before,.step.trace-breakpoint.status-stopped:before{background:linear-gradient(90deg,var(--green) 0 calc(50% - 1px),var(--red) calc(50% - 1px) 100%)} +.step.trace-post-failure.status-pending .step-dot,.step.trace-post-failure.status-muted .step-dot{border-color:var(--red);color:var(--red);background:#fff5f5} +.step.trace-post-failure.status-pending:before,.step.trace-post-failure.status-muted:before{background:var(--red)} +.loading-shimmer{position:relative;overflow:hidden} +.loading-shimmer::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:shimmer-pass 1.3s ease-in-out infinite} +@keyframes shimmer-pass{100%{transform:translateX(100%)} +} +#activeLatencyCard.is-loading{opacity:.78} +.timeline.trace-failed .step.trace-breakpoint{transform:none} +.timeline.trace-failed .step.trace-breakpoint .step-dot,.timeline.trace-recovered .step.trace-recovered .step-dot{width:28px;height:28px;min-width:28px} +.timeline.trace-failed .step.trace-breakpoint:after,.timeline.trace-recovered .step.trace-recovered:after{top:2px;height:40px} +.endpoint-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px} +.endpoint-meta span{border:1px solid var(--rule);border-radius:999px;padding:3px 8px;background:#fff;color:var(--muted);font-size:11px;font-weight:800} +.endpoint-param span{display:block;opacity:.7;margin-top:2px} +.prescan-meta{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px!important;margin-bottom:8px} +.prescan-meta span{border:1px solid var(--rule);border-radius:12px;padding:8px 10px;background:#fff} +.prescan-meta em{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-style:normal;font-weight:900} +.prescan-meta strong{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .delete-run-modal[hidden]{display:none!important} .delete-run-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .18s ease} .delete-run-modal.is-open{opacity:1;pointer-events:auto} @@ -1731,144 +905,43 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .delete-run-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#667085;font-size:20px;line-height:1;display:grid;place-items:center;cursor:pointer} .delete-run-close:hover{background:#fff1f2;border-color:#fecdd3;color:#be123c} .delete-run-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(180deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;color:#be123c;font-size:26px;box-shadow:0 10px 24px rgba(190,18,60,.12)} -.delete-run-copy{display:grid;gap:6px;padding-right:28px}.delete-run-kicker{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#be123c}.delete-run-copy h3{margin:0;font-size:22px;line-height:1.15;color:#101828;letter-spacing:-.03em}.delete-run-copy p{margin:0;color:#475467;font-size:13px;line-height:1.45} -.delete-run-meta{display:grid;gap:8px;padding:12px;border:1px solid #e5e7eb;border-radius:18px;background:#fff}.delete-run-meta span{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center;font-size:12px;color:#344054}.delete-run-meta strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#98a2b3}.delete-run-meta code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11.5px;color:#101828;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px;padding:5px 7px} -.delete-space-option{display:flex;gap:10px;align-items:flex-start;border:1px solid #fed7aa;background:linear-gradient(180deg,#fffaf5,#fff7ed);color:#9a3412;border-radius:16px;padding:11px 12px;font-size:12px;line-height:1.35}.delete-space-option[hidden]{display:none!important}.delete-space-option input{margin-top:2px;accent-color:#be123c}.delete-space-option span{display:grid;gap:2px}.delete-space-option strong{color:#9a3412}.delete-space-option em{font-style:normal;color:#c2410c;word-break:break-word} -.delete-run-warning{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:16px;padding:10px 12px;font-size:12px;line-height:1.4}.delete-run-warning[hidden]{display:none!important} -.delete-run-actions{display:flex;justify-content:flex-end;gap:10px}.delete-run-actions .primary.danger{background:linear-gradient(180deg,#e11d48,#be123c);border-color:#be123c;color:#fff;box-shadow:0 12px 24px rgba(190,18,60,.22)}.delete-run-actions .primary.danger:hover{background:linear-gradient(180deg,#be123c,#9f1239)} -@media (max-width:520px){.delete-run-modal{padding:14px}.delete-run-card{border-radius:22px;padding:18px}.delete-run-actions{display:grid;grid-template-columns:1fr}.delete-run-actions button{width:100%}.delete-run-meta span{grid-template-columns:1fr;gap:4px}} - -/* v162: Latest events gets enough vertical room for live runs */ -.latest-events-card .activity-feed, -.latest-events-card .activity-feed.show-all{ - max-height:354px; - overflow-y:auto; - overscroll-behavior:contain; -} - -/* v164 — premium agent timeline: precise milestones + clockwise grouped progress */ -.timeline{ - --tl-line:#d8dee9; - --tl-muted:#98a2b3; - --tl-ring-bg:#e5e7eb; - display:grid!important; - grid-auto-flow:column!important; - grid-auto-columns:minmax(98px,1fr)!important; - gap:0!important; - align-items:start!important; - padding:8px 2px 10px!important; - overflow-x:auto!important; - overflow-y:hidden!important; - scroll-snap-type:x proximity; -} -.timeline .step{ - position:relative; - display:grid; - justify-items:center; - gap:6px; - min-width:98px!important; - max-width:136px!important; - padding:7px 8px 2px!important; - scroll-snap-align:center; - text-align:center; - transition:opacity .18s ease, transform .18s ease, filter .18s ease; -} -.timeline .step:before{ - content:""; - position:absolute; - left:0; - right:0; - top:24px; - height:2px; - background:var(--tl-line); - z-index:0; - transition:background .22s ease; -} +.delete-run-copy{display:grid;gap:6px;padding-right:28px} +.delete-run-kicker{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#be123c} +.delete-run-copy h3{margin:0;font-size:22px;line-height:1.15;color:#101828;letter-spacing:-.03em} +.delete-run-copy p{margin:0;color:#475467;font-size:13px;line-height:1.45} +.delete-run-meta{display:grid;gap:8px;padding:12px;border:1px solid #e5e7eb;border-radius:18px;background:#fff} +.delete-run-meta span{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center;font-size:12px;color:#344054} +.delete-run-meta strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#98a2b3} +.delete-run-meta code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11.5px;color:#101828;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px;padding:5px 7px} +.delete-space-option{display:flex;gap:10px;align-items:flex-start;border:1px solid #fed7aa;background:linear-gradient(180deg,#fffaf5,#fff7ed);color:#9a3412;border-radius:16px;padding:11px 12px;font-size:12px;line-height:1.35} +.delete-space-option[hidden]{display:none!important} +.delete-space-option input{margin-top:2px;accent-color:#be123c} +.delete-space-option span{display:grid;gap:2px} +.delete-space-option strong{color:#9a3412} +.delete-space-option em{font-style:normal;color:#c2410c;word-break:break-word} +.delete-run-warning{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:16px;padding:10px 12px;font-size:12px;line-height:1.4} +.delete-run-warning[hidden]{display:none!important} +.delete-run-actions{display:flex;justify-content:flex-end;gap:10px} +.delete-run-actions .primary.danger{background:linear-gradient(180deg,#e11d48,#be123c);border-color:#be123c;color:#fff;box-shadow:0 12px 24px rgba(190,18,60,.22)} +.delete-run-actions .primary.danger:hover{background:linear-gradient(180deg,#be123c,#9f1239)} +@media (max-width:520px){.delete-run-modal{padding:14px} +.delete-run-card{border-radius:22px;padding:18px} +.delete-run-actions{display:grid;grid-template-columns:1fr} +.delete-run-actions button{width:100%} +.delete-run-meta span{grid-template-columns:1fr;gap:4px} +} +.latest-events-card .activity-feed,.latest-events-card .activity-feed.show-all{max-height:354px;overflow-y:auto;overscroll-behavior:contain} +.timeline{--tl-line:#d8dee9;--tl-muted:#98a2b3;--tl-ring-bg:#e5e7eb;display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(98px,1fr)!important;gap:0!important;align-items:start!important;padding:8px 2px 10px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity} +.timeline .step{position:relative;display:grid;justify-items:center;gap:6px;min-width:98px!important;max-width:136px!important;padding:7px 8px 2px!important;scroll-snap-align:center;text-align:center;transition:opacity .18s ease,transform .18s ease,filter .18s ease} +.timeline .step:before{content:"";position:absolute;left:0;right:0;top:24px;height:2px;background:var(--tl-line);z-index:0;transition:background .22s ease} .timeline .step:first-child:before{left:50%} .timeline .step:last-child:before{right:50%} -.timeline .step-dot{ - position:relative; - z-index:1; - width:34px!important; - height:34px!important; - min-width:34px!important; - border:0!important; - border-radius:999px; - display:grid; - place-items:center; - padding:3px!important; - color:var(--timeline-fg,#475467)!important; - background: - conic-gradient(from 0deg,var(--timeline-ring,var(--blue)) 0 var(--step-progress,0%),var(--tl-ring-bg) var(--step-progress,0%) 100%)!important; - box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(15,23,42,.06) inset!important; - transition:background .28s ease, transform .18s ease, box-shadow .18s ease, color .18s ease; -} -.timeline .step-dot span{ - position:relative; - z-index:2; - width:24px!important; - height:24px!important; - border-radius:999px; - display:grid; - place-items:center; - margin:auto; - background:#fff!important; - color:inherit!important; - font-size:11px; - font-weight:900; - line-height:1; - box-shadow:0 0 0 1px rgba(15,23,42,.06) inset; -} -.timeline .step.is-grouped .step-dot::before{ - content:""; - position:absolute; - inset:-3px; - border-radius:999px; - border:1px solid rgba(15,23,42,.08); - pointer-events:none; -} -.timeline .step-count{ - position:absolute; - right:-8px; - bottom:-5px; - z-index:3; - min-width:23px; - height:15px; - padding:0 5px; - display:grid; - place-items:center; - border-radius:999px; - border:1px solid rgba(15,23,42,.08); - background:#fff; - color:#667085; - font-size:8.5px; - font-style:normal; - font-weight:900; - letter-spacing:-.02em; - box-shadow:0 2px 5px rgba(15,23,42,.08); -} -.timeline .step strong{ - display:block!important; - max-width:100%; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - color:#344054; - font-size:10.75px!important; - line-height:1.12; - letter-spacing:-.01em; -} -.timeline .step small{ - display:block!important; - max-width:100%; - margin-top:2px; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - color:#98a2b3; - font-size:9px!important; - line-height:1.1; -} +.timeline .step-dot{position:relative;z-index:1;width:34px!important;height:34px!important;min-width:34px!important;border:0!important;border-radius:999px;display:grid;place-items:center;padding:3px!important;color:var(--timeline-fg,#475467)!important;background:conic-gradient(from 0deg,var(--timeline-ring,var(--blue)) 0 var(--step-progress,0%),var(--tl-ring-bg) var(--step-progress,0%) 100%)!important;box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(15,23,42,.06) inset!important;transition:background .28s ease,transform .18s ease,box-shadow .18s ease,color .18s ease} +.timeline .step-dot span{position:relative;z-index:2;width:24px!important;height:24px!important;border-radius:999px;display:grid;place-items:center;margin:auto;background:#fff!important;color:inherit!important;font-size:11px;font-weight:900;line-height:1;box-shadow:0 0 0 1px rgba(15,23,42,.06) inset} +.timeline .step.is-grouped .step-dot::before{content:"";position:absolute;inset:-3px;border-radius:999px;border:1px solid rgba(15,23,42,.08);pointer-events:none} +.timeline .step-count{position:absolute;right:-8px;bottom:-5px;z-index:3;min-width:23px;height:15px;padding:0 5px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:#fff;color:#667085;font-size:8.5px;font-style:normal;font-weight:900;letter-spacing:-.02em;box-shadow:0 2px 5px rgba(15,23,42,.08)} +.timeline .step strong{display:block!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#344054;font-size:10.75px!important;line-height:1.12;letter-spacing:-.01em} +.timeline .step small{display:block!important;max-width:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#98a2b3;font-size:9px!important;line-height:1.1} .timeline .step.status-done{--timeline-ring:var(--green);--timeline-fg:#047857} .timeline .step.status-running,.timeline .step.status-waiting{--timeline-ring:var(--blue);--timeline-fg:#2563eb} .timeline .step.status-fallback,.timeline .step.status-warn{--timeline-ring:var(--amber);--timeline-fg:#92400e;--tl-line:#fde68a} @@ -1880,216 +953,84 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .timeline .step.status-fallback:before,.timeline .step.status-warn:before{background:linear-gradient(90deg,var(--green) 0 50%,var(--amber) 50%)!important} .timeline .step.status-failed:before{background:linear-gradient(90deg,var(--green) 0 50%,var(--red) 50%)!important} .timeline .step.status-after-fail:before{background:var(--red)!important} -.timeline .step.status-running .step-dot, -.timeline .step.status-waiting .step-dot{ - animation:timeline-active-breathe 1.45s ease-in-out infinite!important; -} -.timeline .step.status-running .step-dot::after, -.timeline .step.status-waiting .step-dot::after, -.timeline .step.running .step-dot::after{ - inset:-8px!important; - border-color:rgba(37,99,235,.2)!important; - animation:timeline-soft-wave 1.45s ease-out infinite!important; -} -.timeline .step.status-changed .step-dot, -.timeline .step .step-dot.dot-pop{ - animation:timeline-dot-pop .56s cubic-bezier(.2,.9,.2,1.2)!important; -} -.timeline.trace-failed .step.trace-breakpoint .step-dot, -.timeline.trace-recovered .step.trace-recovered .step-dot{ - width:34px!important; - height:34px!important; - min-width:34px!important; -} -.timeline.trace-failed .step.trace-breakpoint:after, -.timeline.trace-recovered .step.trace-recovered:after{ - display:none!important; -} -@keyframes timeline-active-breathe{ - 0%,100%{transform:translateY(0) scale(1);box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(37,99,235,.08) inset} - 50%{transform:translateY(-1px) scale(1.04);box-shadow:0 8px 18px rgba(37,99,235,.13),0 0 0 1px rgba(37,99,235,.12) inset} -} -@keyframes timeline-soft-wave{ - 0%{transform:scale(.78);opacity:.85} - 72%{transform:scale(1.28);opacity:0} - 100%{transform:scale(1.28);opacity:0} -} -@keyframes timeline-dot-pop{ - 0%{transform:scale(.82)} - 60%{transform:scale(1.12)} - 100%{transform:scale(1)} -} -@media (prefers-reduced-motion:reduce){ - .timeline,.timeline *{scroll-behavior:auto!important;animation:none!important;transition:none!important} -} -@media (max-width:720px){ - .timeline{grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:1fr!important;overflow-x:hidden!important;gap:6px!important} - .timeline .step{grid-template-columns:34px minmax(0,1fr);justify-items:start;text-align:left;max-width:none!important;width:100%!important;min-width:0!important} - .timeline .step:before{left:24px!important;right:auto!important;top:0;bottom:0;width:2px;height:auto} - .timeline .step strong,.timeline .step small{text-align:left} -} - - -/* v165 — visual polish + timeline failure correctness */ -.progress-bar{ - height:10px!important; - padding:2px; - border:1px solid rgba(15,23,42,.07); - background:linear-gradient(180deg,#f8fafc,#eef2f7)!important; - border-radius:999px!important; - box-shadow:inset 0 1px 2px rgba(15,23,42,.07),0 1px 0 rgba(255,255,255,.7); -} -.progress-bar>div{ - height:100%!important; - border-radius:999px!important; - background:linear-gradient(90deg,#2f6df6,#67a3ff)!important; - box-shadow:0 1px 2px rgba(37,99,235,.22),inset 0 1px 0 rgba(255,255,255,.35); -} +.timeline .step.status-running .step-dot,.timeline .step.status-waiting .step-dot{animation:timeline-active-breathe 1.45s ease-in-out infinite!important} +.timeline .step.status-running .step-dot::after,.timeline .step.status-waiting .step-dot::after,.timeline .step.running .step-dot::after{inset:-8px!important;border-color:rgba(37,99,235,.2)!important;animation:timeline-soft-wave 1.45s ease-out infinite!important} +.timeline .step.status-changed .step-dot,.timeline .step .step-dot.dot-pop{animation:timeline-dot-pop .56s cubic-bezier(.2,.9,.2,1.2)!important} +.timeline.trace-failed .step.trace-breakpoint .step-dot,.timeline.trace-recovered .step.trace-recovered .step-dot{width:34px!important;height:34px!important;min-width:34px!important} +.timeline.trace-failed .step.trace-breakpoint:after,.timeline.trace-recovered .step.trace-recovered:after{display:none!important} +@keyframes timeline-active-breathe{0%,100%{transform:translateY(0) scale(1);box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(37,99,235,.08) inset} +50%{transform:translateY(-1px) scale(1.04);box-shadow:0 8px 18px rgba(37,99,235,.13),0 0 0 1px rgba(37,99,235,.12) inset} +} +@keyframes timeline-soft-wave{0%{transform:scale(.78);opacity:.85} +72%{transform:scale(1.28);opacity:0} +100%{transform:scale(1.28);opacity:0} +} +@keyframes timeline-dot-pop{0%{transform:scale(.82)} +60%{transform:scale(1.12)} +100%{transform:scale(1)} +} +@media (prefers-reduced-motion:reduce){.timeline,.timeline *{scroll-behavior:auto!important;animation:none!important;transition:none!important} +} +@media (max-width:720px){.timeline{grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:1fr!important;overflow-x:hidden!important;gap:6px!important} +.timeline .step{grid-template-columns:34px minmax(0,1fr);justify-items:start;text-align:left;max-width:none!important;width:100%!important;min-width:0!important} +.timeline .step:before{left:24px!important;right:auto!important;top:0;bottom:0;width:2px;height:auto} +.timeline .step strong,.timeline .step small{text-align:left} +} +.progress-bar{height:10px!important;padding:2px;border:1px solid rgba(15,23,42,.07);background:linear-gradient(180deg,#f8fafc,#eef2f7)!important;border-radius:999px!important;box-shadow:inset 0 1px 2px rgba(15,23,42,.07),0 1px 0 rgba(255,255,255,.7)} +.progress-bar>div{height:100%!important;border-radius:999px!important;background:linear-gradient(90deg,#2f6df6,#67a3ff)!important;box-shadow:0 1px 2px rgba(37,99,235,.22),inset 0 1px 0 rgba(255,255,255,.35)} .progress-bar>div.is-success{background:linear-gradient(90deg,#16a34a,#4ade80)!important} .progress-bar>div.is-error{background:linear-gradient(90deg,#e11d48,#fb7185)!important} .progress-bar>div.is-stopped{background:linear-gradient(90deg,#64748b,#94a3b8)!important} .progress-caption{margin-bottom:7px!important;color:#475467!important;font-weight:700} - -.model-prescan-card{ - position:relative; - overflow:hidden; - border-color:rgba(20,184,166,.18)!important; - background: - radial-gradient(circle at 10% 0%,rgba(45,212,191,.16),transparent 28%), - linear-gradient(180deg,#ffffff,#f8fffc)!important; - box-shadow:0 14px 32px rgba(16,24,40,.06),0 1px 0 rgba(255,255,255,.85) inset!important; -} -.model-prescan-card:before{ - content:""; - position:absolute; - inset:0 0 auto 0; - height:3px; - background:linear-gradient(90deg,#22c55e,#14b8a6,#60a5fa); - opacity:.65; -} +.model-prescan-card{position:relative;overflow:hidden;border-color:rgba(20,184,166,.18)!important;background:radial-gradient(circle at 10% 0%,rgba(45,212,191,.16),transparent 28%),linear-gradient(180deg,#ffffff,#f8fffc)!important;box-shadow:0 14px 32px rgba(16,24,40,.06),0 1px 0 rgba(255,255,255,.85) inset!important} +.model-prescan-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#22c55e,#14b8a6,#60a5fa);opacity:.65} .model-prescan-card.success{background:radial-gradient(circle at 10% 0%,rgba(34,197,94,.16),transparent 30%),linear-gradient(180deg,#ffffff,#f0fdf4)!important} .model-prescan-card.warn{background:radial-gradient(circle at 10% 0%,rgba(251,191,36,.18),transparent 30%),linear-gradient(180deg,#ffffff,#fff7ed)!important} .model-prescan-card.error{background:radial-gradient(circle at 10% 0%,rgba(244,63,94,.15),transparent 30%),linear-gradient(180deg,#ffffff,#fff1f2)!important} .model-prescan-head strong{font-size:14px!important;letter-spacing:-.015em} .model-prescan-signals span{background:rgba(255,255,255,.86)!important;box-shadow:0 1px 0 rgba(255,255,255,.7) inset} - -.timeline .step-dot{ - /* CSS conic 0deg starts at 12 o'clock; progress advances clockwise. */ - background:conic-gradient(from 0deg,var(--timeline-ring,var(--blue)) 0 var(--step-progress,0%),var(--tl-ring-bg) var(--step-progress,0%) 100%)!important; -} -.timeline .step.status-pending .step-count, -.timeline .step.status-muted .step-count{display:none!important} -.timeline .step.status-failed .step-reason{ - color:#be123c!important; - background:#fff1f2; - border:1px solid #fecdd3; - border-radius:8px; - padding:3px 5px; - white-space:normal!important; - max-width:122px; -} +.timeline .step-dot{background:conic-gradient(from 0deg,var(--timeline-ring,var(--blue)) 0 var(--step-progress,0%),var(--tl-ring-bg) var(--step-progress,0%) 100%)!important} +.timeline .step.status-pending .step-count,.timeline .step.status-muted .step-count{display:none!important} +.timeline .step.status-failed .step-reason{color:#be123c!important;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:3px 5px;white-space:normal!important;max-width:122px} .activity-icon svg{stroke-width:1.9!important;stroke-linecap:round;stroke-linejoin:round} .activity-row.error .activity-icon{background:#fff1f2;color:#e11d48;border-color:#fecdd3} .activity-row.hardware-fallback .activity-icon{background:#eff6ff;color:#2563eb;border-color:#bfdbfe} .recovery-ladder span.failed{border-color:#fecdd3;background:#fff1f2} .recovery-ladder span.failed b{background:#e11d48;color:#fff} .recovery-ladder span.failed em{color:#9f1239} -.recovery-summary:has(+ .recovery-ladder span.failed){border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff1f2)} - -/* legacy v164 test anchor: conic-gradient(from -90deg */ - -/* v172: calmer, premium Model pre-scan card */ -.model-prescan-card{ - position:relative; - border:1px solid rgba(148,163,184,.28)!important; - border-radius:20px!important; - padding:14px!important; - background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.92))!important; - box-shadow:0 12px 34px rgba(15,23,42,.06),0 1px 0 rgba(255,255,255,.9) inset!important; - overflow:hidden; -} -.model-prescan-card:before{ - content:""; - position:absolute; - inset:0 0 auto 0; - height:3px; - background:linear-gradient(90deg,#94a3b8,#cbd5e1); - opacity:.9; -} +.recovery-summary:has(+.recovery-ladder span.failed){border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff1f2)} +.model-prescan-card{position:relative;border:1px solid rgba(148,163,184,.28)!important;border-radius:20px!important;padding:14px!important;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.92))!important;box-shadow:0 12px 34px rgba(15,23,42,.06),0 1px 0 rgba(255,255,255,.9) inset!important;overflow:hidden} +.model-prescan-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#94a3b8,#cbd5e1);opacity:.9} .model-prescan-card.success:before{background:linear-gradient(90deg,#22c55e,#38bdf8)} .model-prescan-card.warn:before{background:linear-gradient(90deg,#f59e0b,#fb7185)} .model-prescan-card.error:before{background:linear-gradient(90deg,#ef4444,#fb7185)} .model-prescan-card.running:before{background:linear-gradient(90deg,#2563eb,#38bdf8)} -.model-prescan-card.success, -.model-prescan-card.warn, -.model-prescan-card.error, -.model-prescan-card.running{ - background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))!important; -} +.model-prescan-card.success,.model-prescan-card.warn,.model-prescan-card.error,.model-prescan-card.running{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))!important} .model-prescan-head{align-items:center!important;gap:12px!important} .model-prescan-head>div{gap:3px!important} .model-prescan-head strong{font-size:15px!important;line-height:1.2!important;letter-spacing:-.025em!important} .model-prescan-card .mini-kicker{font-size:10px!important;letter-spacing:.16em!important;color:#64748b!important} .model-prescan-card>p{font-size:12.5px!important;line-height:1.45!important;color:#475569!important} -.model-prescan-card .badge{ - border-radius:999px!important; - padding:6px 10px!important; - font-size:11px!important; - box-shadow:0 1px 0 rgba(255,255,255,.85) inset; -} +.model-prescan-card .badge{border-radius:999px!important;padding:6px 10px!important;font-size:11px!important;box-shadow:0 1px 0 rgba(255,255,255,.85) inset} .model-prescan-signals{gap:10px!important} -.prescan-meta{ - display:grid!important; - grid-template-columns:repeat(3,minmax(0,1fr)); - gap:7px!important; -} -.prescan-meta span{ - min-height:0!important; - padding:8px 9px!important; - border-radius:13px!important; - border:1px solid rgba(226,232,240,.9)!important; - background:rgba(255,255,255,.78)!important; - box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important; -} +.prescan-meta{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px!important} +.prescan-meta span{min-height:0!important;padding:8px 9px!important;border-radius:13px!important;border:1px solid rgba(226,232,240,.9)!important;background:rgba(255,255,255,.78)!important;box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important} .prescan-meta em{font-size:9px!important;letter-spacing:.12em!important;color:#64748b!important} .prescan-meta strong{font-size:12px!important;line-height:1.25!important;color:#0f172a!important;word-break:break-word} .model-prescan-signals>div:not(.prescan-meta){display:grid!important;gap:6px!important} -.model-prescan-signals>div:not(.prescan-meta)>strong{ - font-size:9.5px!important; - letter-spacing:.14em!important; - color:#64748b!important; -} -.model-prescan-signals span:not(.prescan-meta span){ - border:1px solid rgba(226,232,240,.9)!important; - border-radius:12px!important; - padding:7px 9px!important; - font-size:11.5px!important; - background:rgba(255,255,255,.74)!important; - color:#334155!important; -} +.model-prescan-signals>div:not(.prescan-meta)>strong{font-size:9.5px!important;letter-spacing:.14em!important;color:#64748b!important} +.model-prescan-signals span:not(.prescan-meta span){border:1px solid rgba(226,232,240,.9)!important;border-radius:12px!important;padding:7px 9px!important;font-size:11.5px!important;background:rgba(255,255,255,.74)!important;color:#334155!important} .model-prescan-signals span.good{border-color:rgba(34,197,94,.22)!important;background:rgba(240,253,244,.72)!important} .model-prescan-signals span.risk{border-color:rgba(245,158,11,.26)!important;background:rgba(255,251,235,.75)!important} #scanModel{border-radius:13px!important;padding:9px 12px!important;font-size:12px!important} -@media(max-width:720px){.prescan-meta{grid-template-columns:1fr!important}} -.eval-feedback{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:2px 0 0;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.72);color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.2;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eval-feedback.on{border-color:rgba(34,197,94,.22);background:rgba(236,253,245,.82);color:#047857}.eval-feedback.off{opacity:.78;background:rgba(248,250,252,.74)} - - -/* v179: calmer pre-scan surface + clear eval archive affordance */ -.model-prescan-card{ - border:1px solid rgba(226,232,240,.9)!important; - border-radius:18px!important; - padding:13px!important; - background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.88))!important; - box-shadow:0 10px 26px rgba(15,23,42,.045),0 1px 0 rgba(255,255,255,.9) inset!important; +@media(max-width:720px){.prescan-meta{grid-template-columns:1fr!important} } +.eval-feedback{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:2px 0 0;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.72);color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.2;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.eval-feedback.on{border-color:rgba(34,197,94,.22);background:rgba(236,253,245,.82);color:#047857} +.eval-feedback.off{opacity:.78;background:rgba(248,250,252,.74)} +.model-prescan-card{border:1px solid rgba(226,232,240,.9)!important;border-radius:18px!important;padding:13px!important;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.88))!important;box-shadow:0 10px 26px rgba(15,23,42,.045),0 1px 0 rgba(255,255,255,.9) inset!important} .model-prescan-card:before{display:none!important;content:none!important} -.model-prescan-card.required, -.model-prescan-card.success, -.model-prescan-card.warn, -.model-prescan-card.error, -.model-prescan-card.running{ - background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.9))!important; -} +.model-prescan-card.required,.model-prescan-card.success,.model-prescan-card.warn,.model-prescan-card.error,.model-prescan-card.running{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.9))!important} .model-prescan-card.success{border-color:rgba(34,197,94,.26)!important} .model-prescan-card.warn{border-color:rgba(245,158,11,.28)!important} .model-prescan-card.error{border-color:rgba(244,63,94,.24)!important} @@ -2100,265 +1041,91 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .model-prescan-card .badge.error{background:rgba(255,241,242,.95)!important;border-color:rgba(244,63,94,.22)!important;color:#be123c!important} .model-prescan-card .badge.running{background:rgba(239,246,255,.95)!important;border-color:rgba(37,99,235,.22)!important;color:#1d4ed8!important} .model-prescan-card>p{max-width:58ch!important;color:#475569!important} -.prescan-meta span, -.model-prescan-signals span:not(.prescan-meta span){box-shadow:none!important} -.eval-feedback{gap:4px!important;max-width:100%;} +.prescan-meta span,.model-prescan-signals span:not(.prescan-meta span){box-shadow:none!important} +.eval-feedback{gap:4px!important;max-width:100%} .eval-feedback.off{color:#64748b!important;background:rgba(248,250,252,.86)!important;border-color:rgba(226,232,240,.95)!important;opacity:1!important} -/* v180: direct eval archive activation */ -.eval-enable-button[hidden]{display:none!important;} -.eval-enable-button{white-space:nowrap;} - -/* v183: Eval Archive moved to the observability column under Run Stats */ -.compact-storage{gap:12px!important;} -.compact-storage .bucket-status-card{margin-bottom:0!important;} -.eval-archive-panel{ - margin-top:14px; - padding:14px; - border-radius:20px; - background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,250,252,.76)); - border:1px solid rgba(226,232,240,.78); - box-shadow:0 16px 36px rgba(15,23,42,.035),0 1px 0 rgba(255,255,255,.92) inset; -} -.eval-archive-panel[hidden]{display:none!important;} +.eval-enable-button[hidden]{display:none!important} +.eval-enable-button{white-space:nowrap} +.compact-storage{gap:12px!important} +.compact-storage .bucket-status-card{margin-bottom:0!important} +.eval-archive-panel{margin-top:14px;padding:14px;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,250,252,.76));border:1px solid rgba(226,232,240,.78);box-shadow:0 16px 36px rgba(15,23,42,.035),0 1px 0 rgba(255,255,255,.92) inset} +.eval-archive-panel[hidden]{display:none!important} .eval-archive-panel.on{background:linear-gradient(180deg,rgba(240,253,244,.82),rgba(255,255,255,.86));border-color:rgba(34,197,94,.2)} -.eval-archive-panel.off{background:linear-gradient(180deg,rgba(248,250,252,.88),rgba(255,255,255,.86));} -.eval-archive-title-row{align-items:flex-start;margin-bottom:8px!important;} -.eval-archive-title-row h4{margin:2px 0 0;font-size:.98rem;line-height:1.15;letter-spacing:-.02em;color:var(--ink);} -.eval-archive-summary{margin:0 0 12px;color:var(--muted);font-size:.78rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;} -.eval-archive-panel.on .eval-archive-summary{color:#047857;} -.eval-archive-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;} -.eval-archive-actions button{min-height:34px;padding:8px 11px!important;border-radius:12px!important;white-space:nowrap;} -.eval-archive-actions .danger{color:#be123c!important;background:rgba(255,241,242,.82)!important;border-color:rgba(244,63,94,.2)!important;} -.eval-feedback{display:block!important;width:auto!important;max-width:100%;padding:0!important;border:0!important;background:transparent!important;border-radius:0!important;font-size:.78rem!important;font-weight:650!important;line-height:1.35!important;letter-spacing:0!important;} +.eval-archive-panel.off{background:linear-gradient(180deg,rgba(248,250,252,.88),rgba(255,255,255,.86))} +.eval-archive-title-row{align-items:flex-start;margin-bottom:8px!important} +.eval-archive-title-row h4{margin:2px 0 0;font-size:.98rem;line-height:1.15;letter-spacing:-.02em;color:var(--ink)} +.eval-archive-summary{margin:0 0 12px;color:var(--muted);font-size:.78rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical} +.eval-archive-panel.on .eval-archive-summary{color:#047857} +.eval-archive-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap} +.eval-archive-actions button{min-height:34px;padding:8px 11px!important;border-radius:12px!important;white-space:nowrap} +.eval-archive-actions .danger{color:#be123c!important;background:rgba(255,241,242,.82)!important;border-color:rgba(244,63,94,.2)!important} +.eval-feedback{display:block!important;width:auto!important;max-width:100%;padding:0!important;border:0!important;background:transparent!important;border-radius:0!important;font-size:.78rem!important;font-weight:650!important;line-height:1.35!important;letter-spacing:0!important} .eval-feedback.off{color:#64748b!important;background:transparent!important;border:0!important;opacity:1!important} -@media(max-width:760px){.eval-archive-actions{justify-content:flex-start}} - -/* v184: compact premium Model pre-scan states */ -.model-prescan-card.required{ - border-color:rgba(148,163,184,.28)!important; - background:radial-gradient(circle at 12% 0%,rgba(59,130,246,.075),transparent 36%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.94))!important; - box-shadow:0 14px 34px rgba(15,23,42,.055),0 1px 0 rgba(255,255,255,.9) inset!important; +@media(max-width:760px){.eval-archive-actions{justify-content:flex-start} } +.model-prescan-card.required{border-color:rgba(148,163,184,.28)!important;background:radial-gradient(circle at 12% 0%,rgba(59,130,246,.075),transparent 36%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.94))!important;box-shadow:0 14px 34px rgba(15,23,42,.055),0 1px 0 rgba(255,255,255,.9) inset!important} .model-prescan-card.required .model-prescan-head strong{font-size:16px!important;letter-spacing:-.03em!important} .model-prescan-card.required>p{font-size:12.75px!important;line-height:1.42!important;max-width:50ch!important} -.model-prescan-card.required #scanModel{ - border-color:rgba(37,99,235,.22)!important; - background:linear-gradient(180deg,#fff,#f8fafc)!important; - box-shadow:0 8px 18px rgba(15,23,42,.06)!important; -} -.model-prescan-card.success{ - border-color:rgba(34,197,94,.20)!important; - background:radial-gradient(circle at 98% 0%,rgba(34,197,94,.08),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.93))!important; -} +.model-prescan-card.required #scanModel{border-color:rgba(37,99,235,.22)!important;background:linear-gradient(180deg,#fff,#f8fafc)!important;box-shadow:0 8px 18px rgba(15,23,42,.06)!important} +.model-prescan-card.success{border-color:rgba(34,197,94,.20)!important;background:radial-gradient(circle at 98% 0%,rgba(34,197,94,.08),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.93))!important} .model-prescan-card.success .model-prescan-head strong{font-size:15px!important} .model-prescan-card.success>p{font-size:12.5px!important;line-height:1.36!important;margin-top:-2px!important} .model-prescan-card.success .model-prescan-signals{gap:8px!important} -.prescan-compact-grid{ - display:grid!important; - grid-template-columns:repeat(3,minmax(0,1fr))!important; - gap:7px!important; -} -.prescan-chip{ - display:grid!important; - grid-template-columns:auto 1fr!important; - grid-template-areas:"icon label" "icon value"!important; - column-gap:7px!important; - align-items:center!important; - min-width:0!important; - padding:8px 9px!important; - border-radius:14px!important; - border:1px solid rgba(226,232,240,.82)!important; - background:rgba(255,255,255,.82)!important; -} -.prescan-chip i{ - grid-area:icon!important; - width:23px!important; - height:23px!important; - display:inline-flex!important; - align-items:center!important; - justify-content:center!important; - border-radius:999px!important; - background:rgba(248,250,252,.96)!important; - color:#475569!important; - font-style:normal!important; - font-size:12px!important; - font-weight:900!important; -} -.prescan-chip em{ - grid-area:label!important; - font-size:8.5px!important; - line-height:1!important; - letter-spacing:.13em!important; - text-transform:uppercase!important; - color:#64748b!important; - font-style:normal!important; - font-weight:850!important; -} -.prescan-chip strong{ - grid-area:value!important; - min-width:0!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - white-space:nowrap!important; - color:#0f172a!important; - font-size:11.5px!important; - line-height:1.15!important; -} +.prescan-compact-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important} +.prescan-chip{display:grid!important;grid-template-columns:auto 1fr!important;grid-template-areas:"icon label" "icon value"!important;column-gap:7px!important;align-items:center!important;min-width:0!important;padding:8px 9px!important;border-radius:14px!important;border:1px solid rgba(226,232,240,.82)!important;background:rgba(255,255,255,.82)!important} +.prescan-chip i{grid-area:icon!important;width:23px!important;height:23px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:999px!important;background:rgba(248,250,252,.96)!important;color:#475569!important;font-style:normal!important;font-size:12px!important;font-weight:900!important} +.prescan-chip em{grid-area:label!important;font-size:8.5px!important;line-height:1!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:#64748b!important;font-style:normal!important;font-weight:850!important} +.prescan-chip strong{grid-area:value!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#0f172a!important;font-size:11.5px!important;line-height:1.15!important} .prescan-chip.good{border-color:rgba(34,197,94,.18)!important;background:rgba(240,253,244,.56)!important} .prescan-chip.good i{background:rgba(220,252,231,.95)!important;color:#047857!important} .prescan-pill-row{display:flex!important;flex-wrap:wrap!important;gap:6px!important;min-width:0!important} -.prescan-pill{ - display:inline-flex!important; - align-items:center!important; - gap:5px!important; - max-width:100%!important; - padding:5px 8px!important; - border-radius:999px!important; - border:1px solid rgba(226,232,240,.86)!important; - background:rgba(255,255,255,.76)!important; - color:#334155!important; - font-size:10.75px!important; - line-height:1.2!important; - white-space:nowrap!important; - overflow:hidden!important; - text-overflow:ellipsis!important; -} +.prescan-pill{display:inline-flex!important;align-items:center!important;gap:5px!important;max-width:100%!important;padding:5px 8px!important;border-radius:999px!important;border:1px solid rgba(226,232,240,.86)!important;background:rgba(255,255,255,.76)!important;color:#334155!important;font-size:10.75px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important} .prescan-pill.good{border-color:rgba(34,197,94,.18)!important;background:rgba(240,253,244,.68)!important} .prescan-pill.risk{border-color:rgba(245,158,11,.25)!important;background:rgba(255,251,235,.72)!important} .prescan-pill .prescan-icon{font-weight:900!important;opacity:.8!important} -.prescan-recommendation-line{ - display:flex!important; - align-items:center!important; - gap:7px!important; - padding:7px 9px!important; - border-radius:13px!important; - border:1px solid rgba(226,232,240,.82)!important; - background:rgba(255,255,255,.72)!important; - color:#475569!important; - font-size:11px!important; - line-height:1.25!important; -} +.prescan-recommendation-line{display:flex!important;align-items:center!important;gap:7px!important;padding:7px 9px!important;border-radius:13px!important;border:1px solid rgba(226,232,240,.82)!important;background:rgba(255,255,255,.72)!important;color:#475569!important;font-size:11px!important;line-height:1.25!important} .prescan-recommendation-line b{color:#0f172a!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.11em!important} .model-prescan-card.success #scanModel{padding:7px 10px!important;font-size:11.5px!important;border-radius:12px!important} -@media(max-width:720px){.prescan-compact-grid{grid-template-columns:1fr!important}.prescan-pill{white-space:normal!important}} - -/* v185: consistent compact Model pre-scan rendering for all states */ +@media(max-width:720px){.prescan-compact-grid{grid-template-columns:1fr!important} +.prescan-pill{white-space:normal!important} +} .model-prescan-card.required{padding:14px!important;gap:10px!important} .model-prescan-card.required .model-prescan-signals{display:block!important;margin-top:1px!important} -.model-prescan-card.running{ - border-color:rgba(37,99,235,.20)!important; - background:radial-gradient(circle at 96% 0%,rgba(59,130,246,.09),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.94))!important; -} -.model-prescan-card.warn{ - border-color:rgba(245,158,11,.22)!important; - background:radial-gradient(circle at 96% 0%,rgba(245,158,11,.10),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,251,235,.52))!important; -} -.model-prescan-card.error{ - border-color:rgba(244,63,94,.20)!important; - background:radial-gradient(circle at 96% 0%,rgba(244,63,94,.09),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,241,242,.52))!important; -} -.model-prescan-card.running .model-prescan-head strong, -.model-prescan-card.warn .model-prescan-head strong, -.model-prescan-card.error .model-prescan-head strong{font-size:15px!important;letter-spacing:-.025em!important} -.model-prescan-card.warn .prescan-chip, -.model-prescan-card.error .prescan-chip, -.model-prescan-card.running .prescan-chip{background:rgba(255,255,255,.78)!important} +.model-prescan-card.running{border-color:rgba(37,99,235,.20)!important;background:radial-gradient(circle at 96% 0%,rgba(59,130,246,.09),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.94))!important} +.model-prescan-card.warn{border-color:rgba(245,158,11,.22)!important;background:radial-gradient(circle at 96% 0%,rgba(245,158,11,.10),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,251,235,.52))!important} +.model-prescan-card.error{border-color:rgba(244,63,94,.20)!important;background:radial-gradient(circle at 96% 0%,rgba(244,63,94,.09),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,241,242,.52))!important} +.model-prescan-card.running .model-prescan-head strong,.model-prescan-card.warn .model-prescan-head strong,.model-prescan-card.error .model-prescan-head strong{font-size:15px!important;letter-spacing:-.025em!important} +.model-prescan-card.warn .prescan-chip,.model-prescan-card.error .prescan-chip,.model-prescan-card.running .prescan-chip{background:rgba(255,255,255,.78)!important} .prescan-pill.running{border-color:rgba(37,99,235,.18)!important;background:rgba(239,246,255,.72)!important;color:#1e3a8a!important} .prescan-recommendation-line.warn{border-color:rgba(245,158,11,.18)!important;background:rgba(255,251,235,.70)!important} .prescan-recommendation-line.error{border-color:rgba(244,63,94,.18)!important;background:rgba(255,241,242,.70)!important} .prescan-recommendation-line.running{border-color:rgba(37,99,235,.16)!important;background:rgba(239,246,255,.62)!important} .prescan-hints{margin-top:2px!important} .prescan-spinner{display:inline-flex!important;animation:prescan-spin 1.1s linear infinite!important} -@keyframes prescan-spin{to{transform:rotate(360deg)}} -.model-prescan-card.warn #scanModel, -.model-prescan-card.error #scanModel, -.model-prescan-card.running #scanModel{padding:7px 10px!important;font-size:11.5px!important;border-radius:12px!important} +@keyframes prescan-spin{to{transform:rotate(360deg)} +} +.model-prescan-card.warn #scanModel,.model-prescan-card.error #scanModel,.model-prescan-card.running #scanModel{padding:7px 10px!important;font-size:11.5px!important;border-radius:12px!important} .model-prescan-card.error #scanModel{border-color:rgba(244,63,94,.18)!important;background:linear-gradient(180deg,#fff,#fff7f7)!important} -@media(prefers-reduced-motion:reduce){.prescan-spinner{animation:none!important}} - -/* v186: Eval Archive breathing room + less redundant Model pre-scan summary */ -.eval-archive-panel{ - padding:16px!important; - display:grid!important; - gap:10px!important; -} -.eval-archive-title-row{ - margin-bottom:2px!important; - align-items:flex-start!important; -} -.eval-archive-title-row .badge{ - align-self:start!important; - margin-top:0!important; -} -.eval-archive-summary{ - margin:0!important; - max-width:100%!important; - line-height:1.35!important; -} -.eval-archive-actions{ - margin-top:8px!important; - padding-top:12px!important; - border-top:1px solid rgba(226,232,240,.72)!important; - gap:10px!important; +@media(prefers-reduced-motion:reduce){.prescan-spinner{animation:none!important} } +.eval-archive-panel{padding:16px!important;display:grid!important;gap:10px!important} +.eval-archive-title-row{margin-bottom:2px!important;align-items:flex-start!important} +.eval-archive-title-row .badge{align-self:start!important;margin-top:0!important} +.eval-archive-summary{margin:0!important;max-width:100%!important;line-height:1.35!important} +.eval-archive-actions{margin-top:8px!important;padding-top:12px!important;border-top:1px solid rgba(226,232,240,.72)!important;gap:10px!important} .eval-archive-panel.on .eval-archive-actions{border-top-color:rgba(34,197,94,.14)!important} -.eval-archive-actions button{ - min-height:36px!important; - padding:8px 12px!important; -} - -.model-prescan-card{ - gap:9px!important; -} -.model-prescan-card.success{ - padding:13px!important; -} -.model-prescan-card.success>p{ - max-width:52ch!important; -} -.prescan-compact-grid{ - grid-template-columns:repeat(3,minmax(0,1fr))!important; - gap:6px!important; -} -.prescan-chip{ - padding:7px 8px!important; - border-radius:13px!important; -} -.prescan-chip i{ - width:21px!important; - height:21px!important; - font-size:11px!important; -} +.eval-archive-actions button{min-height:36px!important;padding:8px 12px!important} +.model-prescan-card{gap:9px!important} +.model-prescan-card.success{padding:13px!important} +.model-prescan-card.success>p{max-width:52ch!important} +.prescan-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important} +.prescan-chip{padding:7px 8px!important;border-radius:13px!important} +.prescan-chip i{width:21px!important;height:21px!important;font-size:11px!important} .prescan-chip em{font-size:8px!important} .prescan-chip strong{font-size:11px!important} -.prescan-decision-line{ - display:flex!important; - align-items:flex-start!important; - gap:8px!important; - padding:8px 10px!important; - border-radius:14px!important; - border:1px solid rgba(226,232,240,.84)!important; - background:rgba(255,255,255,.78)!important; - color:#475569!important; - font-size:11.25px!important; - line-height:1.25!important; - min-width:0!important; -} -.prescan-decision-line b{ - flex:0 0 auto!important; - color:#0f172a!important; - font-size:10px!important; - text-transform:uppercase!important; - letter-spacing:.12em!important; -} -.prescan-decision-line span{ - min-width:0!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - display:-webkit-box!important; - -webkit-line-clamp:2!important; - -webkit-box-orient:vertical!important; -} +.prescan-decision-line{display:flex!important;align-items:flex-start!important;gap:8px!important;padding:8px 10px!important;border-radius:14px!important;border:1px solid rgba(226,232,240,.84)!important;background:rgba(255,255,255,.78)!important;color:#475569!important;font-size:11.25px!important;line-height:1.25!important;min-width:0!important} +.prescan-decision-line b{flex:0 0 auto!important;color:#0f172a!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.12em!important} +.prescan-decision-line span{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important} .prescan-decision-line.success{border-color:rgba(34,197,94,.18)!important;background:rgba(240,253,244,.55)!important} .prescan-decision-line.warn{border-color:rgba(245,158,11,.20)!important;background:rgba(255,251,235,.62)!important} .prescan-decision-line.error{border-color:rgba(244,63,94,.18)!important;background:rgba(255,241,242,.62)!important} @@ -2366,11 +1133,9 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .model-prescan-card.success .prescan-pill-row .prescan-pill.good{display:none!important} .model-prescan-card.success .model-prescan-signals{gap:7px!important} .model-prescan-card.success #scanModel{margin-top:1px!important} -@media(max-width:720px){ - .eval-archive-actions{padding-top:10px!important} - .prescan-decision-line{display:grid!important;gap:4px!important} +@media(max-width:720px){.eval-archive-actions{padding-top:10px!important} +.prescan-decision-line{display:grid!important;gap:4px!important} } - .run-eval-archive-card[hidden]{display:none!important} .eval-archive-body{display:grid;gap:8px;margin-top:8px} .eval-archive-body p{margin:0;color:#475467;font-size:12px;line-height:1.35} @@ -2379,25 +1144,12 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .eval-archive-meta span{display:block;color:#667085;font-size:10px;text-transform:uppercase;letter-spacing:.04em} .eval-archive-meta strong{display:block;margin-top:2px;font-size:12px;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .eval-archive-path{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;padding:7px 8px;overflow:auto} -@media (max-width:520px){.eval-archive-meta{grid-template-columns:1fr}} - -/* v189.2: canonical run timeline bridge */ -.timeline.timeline-canonical .step small{ - display:block; - max-width:180px; - margin:0 auto; -} -.timeline.timeline-canonical .canonical-summary{ - color:var(--muted); -} -.timeline.timeline-canonical .step.status-warn .canonical-summary{ - color:#92400e; +@media (max-width:520px){.eval-archive-meta{grid-template-columns:1fr} } -.timeline.timeline-canonical .step.status-skipped{ - opacity:.72; -} - -/* v189.3 — semantic progress: process completion is separate from result verdict */ +.timeline.timeline-canonical .step small{display:block;max-width:180px;margin:0 auto} +.timeline.timeline-canonical .canonical-summary{color:var(--muted)} +.timeline.timeline-canonical .step.status-warn .canonical-summary{color:#92400e} +.timeline.timeline-canonical .step.status-skipped{opacity:.72} .progress-bar>div.is-warn{background:linear-gradient(90deg,#d97706,#fbbf24)!important} .progress-semantics{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:8px 0 0;font-size:11.5px;color:#475467;line-height:1.35} .progress-semantics[hidden]{display:none!important} @@ -2409,17 +1161,8 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .progress-semantics.error span{border-color:#fecdd3;background:#fff1f2;color:#be123c} .progress-semantics.stopped span{border-color:#cbd5e1;background:#f8fafc;color:#475569} .progress-semantics.running span{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8} - -/* v189.4 — mobile-first canonical timeline details and compact readable phases */ .timeline-phase-details[hidden]{display:none!important} -.timeline-phase-details{ - margin:10px 0 0; - border:1px solid #e5e7eb; - background:#fff; - border-radius:14px; - padding:10px 12px; - box-shadow:0 8px 20px rgba(16,24,40,.04); -} +.timeline-phase-details{margin:10px 0 0;border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 8px 20px rgba(16,24,40,.04)} .timeline-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px} .timeline-detail-head span{font-weight:700;color:#101828;font-size:13px} .timeline-detail-head strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#667085;background:#f8fafc;border:1px solid #e5e7eb;border-radius:999px;padding:4px 8px;white-space:nowrap} @@ -2435,160 +1178,40 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .timeline-phase-details.warn,.timeline-phase-details.warning,.timeline-phase-details.fallback{border-color:#fed7aa;background:#fff7ed} .timeline-phase-details.failed,.timeline-phase-details.error{border-color:#fecdd3;background:#fff1f2} .timeline-phase-details.skipped,.timeline-phase-details.muted{background:#f8fafc;opacity:.92} -@media (max-width:720px){ - .timeline.timeline-canonical{ - display:grid!important; - grid-template-columns:1fr!important; - gap:8px!important; - overflow:visible!important; - padding:4px 0!important; - } - .timeline.timeline-canonical .step{ - min-width:0!important; - display:grid!important; - grid-template-columns:34px 1fr!important; - text-align:left!important; - align-items:start!important; - gap:9px!important; - padding:8px 10px!important; - border:1px solid #eef2f7!important; - border-radius:12px!important; - background:#fff!important; - } - .timeline.timeline-canonical .step:before, - .timeline.timeline-canonical .step:after{display:none!important} - .timeline.timeline-canonical .step-dot{margin:0!important;width:28px!important;height:28px!important} - .timeline.timeline-canonical .step strong, - .timeline.timeline-canonical .step small, - .timeline.timeline-canonical .step .canonical-summary{max-width:none!important;text-align:left!important;margin:0!important} - .timeline.timeline-canonical .step small{font-size:11.5px!important;line-height:1.25!important} - .timeline-phase-details{margin-top:8px;padding:9px 10px;border-radius:12px} - .timeline-detail-row{align-items:flex-start;flex-direction:column;gap:3px} - .timeline-detail-row strong{text-align:left;white-space:normal} - .progress-semantics{gap:6px;font-size:11px} - .progress-semantics span{width:100%;justify-content:space-between} -} - -/* v189.8 — compact non-blocking run notes */ -.timeline-trace-note.run-notes{ - border-color:#bfdbfe; - background:#eff6ff; - color:#1e3a8a; -} -.timeline-trace-note.run-notes strong{ - color:#1d4ed8; -} -.timeline-trace-note.run-notes ul{ - display:grid; - gap:4px; - list-style:none; - margin:6px 0 0; - padding:0; -} -.timeline-trace-note.run-notes li{ - display:flex; - flex-wrap:wrap; - gap:5px 8px; - align-items:baseline; - font-size:12px; - line-height:1.35; -} -.timeline-trace-note.run-notes li strong{ - font-size:12px; - text-transform:none; - letter-spacing:0; -} -.timeline-trace-note.run-notes li span{ - color:#475569; -} - - -/* v190.0 — Active Run consolidation: fit-to-width timeline and compact focus panels */ -@media (min-width:521px){ - .timeline.timeline-canonical{ - grid-auto-flow:unset!important; - grid-auto-columns:unset!important; - overflow-x:hidden!important; - overflow-y:visible!important; - scroll-snap-type:none!important; - gap:0!important; - padding:8px 0 12px!important; - } - .timeline.timeline-canonical .step{ - min-width:0!important; - max-width:none!important; - width:auto!important; - padding:6px 3px 2px!important; - scroll-snap-align:none!important; - } - .timeline.timeline-canonical .step-dot{ - width:30px!important; - height:30px!important; - min-width:30px!important; - } - .timeline.timeline-canonical .step-dot span{ - width:22px!important; - height:22px!important; - font-size:10.5px!important; - } - .timeline.timeline-canonical .step strong{ - font-size:10.2px!important; - line-height:1.1!important; - min-height:0!important; - -webkit-line-clamp:1!important; - } - .timeline.timeline-canonical .step small{ - max-width:100%!important; - font-size:8.8px!important; - line-height:1.1!important; - min-height:0!important; - } -} -.timeline-phase-details.recovery-compact{ - background:#fff!important; - border-color:#e5e7eb!important; - box-shadow:0 6px 16px rgba(16,24,40,.035)!important; -} -.timeline-phase-details.recovery-compact.failed, -.timeline-phase-details.recovery-compact.error{ - border-left:3px solid #f43f5e!important; -} -.timeline-phase-details.recovery-compact>p{ - margin-bottom:4px!important; -} -.timeline-detail-pointer{ - margin:4px 0 0!important; - color:#667085!important; - font-size:11.5px!important; -} -.agent-recovery-body, -.recovery-summary, -.recovery-summary p, -.recovery-evidence, -.recovery-next{ - overflow-wrap:anywhere!important; - word-break:normal!important; - white-space:normal!important; -} -.recovery-summary p, -.recovery-next{ - text-overflow:unset!important; - overflow:visible!important; -} - - -/* v190.1 — Space Test validation projection */ -.validation-timeline{ - display:grid; - grid-template-columns:repeat(8,minmax(0,1fr)); - align-items:start; - gap:0; - overflow-x:visible; - margin:12px 0 16px; - padding:4px 0 8px; -} +@media (max-width:720px){.timeline.timeline-canonical{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;overflow:visible!important;padding:4px 0!important} +.timeline.timeline-canonical .step{min-width:0!important;display:grid!important;grid-template-columns:34px 1fr!important;text-align:left!important;align-items:start!important;gap:9px!important;padding:8px 10px!important;border:1px solid #eef2f7!important;border-radius:12px!important;background:#fff!important} +.timeline.timeline-canonical .step:before,.timeline.timeline-canonical .step:after{display:none!important} +.timeline.timeline-canonical .step-dot{margin:0!important;width:28px!important;height:28px!important} +.timeline.timeline-canonical .step strong,.timeline.timeline-canonical .step small,.timeline.timeline-canonical .step .canonical-summary{max-width:none!important;text-align:left!important;margin:0!important} +.timeline.timeline-canonical .step small{font-size:11.5px!important;line-height:1.25!important} +.timeline-phase-details{margin-top:8px;padding:9px 10px;border-radius:12px} +.timeline-detail-row{align-items:flex-start;flex-direction:column;gap:3px} +.timeline-detail-row strong{text-align:left;white-space:normal} +.progress-semantics{gap:6px;font-size:11px} +.progress-semantics span{width:100%;justify-content:space-between} +} +.timeline-trace-note.run-notes{border-color:#bfdbfe;background:#eff6ff;color:#1e3a8a} +.timeline-trace-note.run-notes strong{color:#1d4ed8} +.timeline-trace-note.run-notes ul{display:grid;gap:4px;list-style:none;margin:6px 0 0;padding:0} +.timeline-trace-note.run-notes li{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:baseline;font-size:12px;line-height:1.35} +.timeline-trace-note.run-notes li strong{font-size:12px;text-transform:none;letter-spacing:0} +.timeline-trace-note.run-notes li span{color:#475569} +@media (min-width:521px){.timeline.timeline-canonical{grid-auto-flow:unset!important;grid-auto-columns:unset!important;overflow-x:hidden!important;overflow-y:visible!important;scroll-snap-type:none!important;gap:0!important;padding:8px 0 12px!important} +.timeline.timeline-canonical .step{min-width:0!important;max-width:none!important;width:auto!important;padding:6px 3px 2px!important;scroll-snap-align:none!important} +.timeline.timeline-canonical .step-dot{width:30px!important;height:30px!important;min-width:30px!important} +.timeline.timeline-canonical .step-dot span{width:22px!important;height:22px!important;font-size:10.5px!important} +.timeline.timeline-canonical .step strong{font-size:10.2px!important;line-height:1.1!important;min-height:0!important;-webkit-line-clamp:1!important} +.timeline.timeline-canonical .step small{max-width:100%!important;font-size:8.8px!important;line-height:1.1!important;min-height:0!important} +} +.timeline-phase-details.recovery-compact{background:#fff!important;border-color:#e5e7eb!important;box-shadow:0 6px 16px rgba(16,24,40,.035)!important} +.timeline-phase-details.recovery-compact.failed,.timeline-phase-details.recovery-compact.error{border-left:3px solid #f43f5e!important} +.timeline-phase-details.recovery-compact>p{margin-bottom:4px!important} +.timeline-detail-pointer{margin:4px 0 0!important;color:#667085!important;font-size:11.5px!important} +.agent-recovery-body,.recovery-summary,.recovery-summary p,.recovery-evidence,.recovery-next{overflow-wrap:anywhere!important;word-break:normal!important;white-space:normal!important} +.recovery-summary p,.recovery-next{text-overflow:unset!important;overflow:visible!important} +.validation-timeline{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:start;gap:0;overflow-x:visible;margin:12px 0 16px;padding:4px 0 8px} .validation-step{min-width:0;padding:0 3px;gap:6px} -.validation-step:not(:last-child)::after{left:calc(50% + 11px);right:calc(-50% + 11px)} +.validation-step:not(:last-child)::after{left:calc(50%+11px);right:calc(-50%+11px)} .validation-step strong{font-size:10.5px;max-width:70px;white-space:normal;overflow-wrap:normal;hyphens:none} .validation-step em{font-size:9.5px;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .validation-step .dot{width:18px;height:18px} @@ -2601,549 +1224,158 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .endpoint-param{display:block;border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px 10px;font-style:normal;min-width:0} .endpoint-param strong{display:block;font-size:12px;line-height:1.2;color:#344054;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .endpoint-param span{display:block;margin-top:3px;font-size:10.5px;line-height:1.25;color:#98a2b3;white-space:normal;overflow-wrap:anywhere} -@media (max-width:720px){ - .validation-timeline{display:flex;overflow-x:auto;scrollbar-width:thin;padding-bottom:10px} - .validation-step{min-width:74px;padding:0 7px} - .endpoint-io{grid-template-columns:1fr} - .endpoint-io>span{grid-template-columns:1fr} -} - - -/* v190.9 — Active Run timeline hotfix (carried forward from v190.5) */ -/* v190.5 — Active Run timeline hotfix: horizontal canonical row + restored active pulse */ -@media (min-width:521px){ - .timeline.timeline-canonical{ - display:grid!important; - grid-auto-flow:row!important; - grid-auto-columns:unset!important; - grid-auto-rows:auto!important; - align-items:start!important; - overflow-x:hidden!important; - overflow-y:visible!important; - scroll-snap-type:none!important; - padding:8px 0 12px!important; - } - .timeline.timeline-canonical .step{ - min-width:0!important; - max-width:none!important; - width:auto!important; - grid-template-columns:1fr!important; - justify-items:center!important; - text-align:center!important; - } - .timeline.timeline-canonical .step:before{ - left:0!important; - right:0!important; - top:22px!important; - width:auto!important; - height:2px!important; - bottom:auto!important; - } - .timeline.timeline-canonical .step:first-child:before{left:50%!important} - .timeline.timeline-canonical .step:last-child:before{right:50%!important} - .timeline.timeline-canonical .step.status-running .step-dot, - .timeline.timeline-canonical .step.status-waiting .step-dot{ - animation:timeline-active-breathe 1.45s ease-in-out infinite!important; - } - .timeline.timeline-canonical .step.status-running .step-dot::after, - .timeline.timeline-canonical .step.status-waiting .step-dot::after{ - content:""; - position:absolute; - inset:-8px!important; - border-radius:999px; - border:2px solid rgba(37,99,235,.2)!important; - animation:timeline-soft-wave 1.45s ease-out infinite!important; - pointer-events:none; - } -} -@media (max-width:520px){ - .timeline.timeline-canonical{ - grid-auto-flow:row!important; - grid-auto-columns:auto!important; - grid-template-columns:1fr!important; - overflow-x:hidden!important; - gap:6px!important; - } -} - - -/* v190.4 — Active Run canonical timeline hard horizontal fix. - Keep the Active Run product timeline as a compact horizontal row even on - narrow central columns. Space Test keeps its own validation timeline. */ -.timeline.timeline-canonical{ - display:grid!important; - grid-template-columns:repeat(var(--timeline-phase-count,8),minmax(0,1fr))!important; - grid-auto-flow:row!important; - grid-auto-columns:unset!important; - grid-auto-rows:auto!important; - align-items:start!important; - gap:0!important; - overflow-x:hidden!important; - overflow-y:visible!important; - scroll-snap-type:none!important; - padding:8px 0 12px!important; -} -.timeline.timeline-canonical .step{ - min-width:0!important; - max-width:none!important; - width:auto!important; - display:grid!important; - grid-template-columns:1fr!important; - justify-items:center!important; - text-align:center!important; - align-items:start!important; - gap:5px!important; - padding:6px 2px 2px!important; - border:0!important; - border-radius:0!important; - background:transparent!important; - scroll-snap-align:none!important; -} -.timeline.timeline-canonical .step:before{ - display:block!important; - content:""!important; - position:absolute!important; - left:0!important; - right:0!important; - top:21px!important; - width:auto!important; - height:2px!important; - bottom:auto!important; - background:var(--tl-line)!important; - z-index:0!important; +@media (max-width:720px){.validation-timeline{display:flex;overflow-x:auto;scrollbar-width:thin;padding-bottom:10px} +.validation-step{min-width:74px;padding:0 7px} +.endpoint-io{grid-template-columns:1fr} +.endpoint-io>span{grid-template-columns:1fr} +} +@media (min-width:521px){.timeline.timeline-canonical{display:grid!important;grid-auto-flow:row!important;grid-auto-columns:unset!important;grid-auto-rows:auto!important;align-items:start!important;overflow-x:hidden!important;overflow-y:visible!important;scroll-snap-type:none!important;padding:8px 0 12px!important} +.timeline.timeline-canonical .step{min-width:0!important;max-width:none!important;width:auto!important;grid-template-columns:1fr!important;justify-items:center!important;text-align:center!important} +.timeline.timeline-canonical .step:before{left:0!important;right:0!important;top:22px!important;width:auto!important;height:2px!important;bottom:auto!important} +.timeline.timeline-canonical .step:first-child:before{left:50%!important} +.timeline.timeline-canonical .step:last-child:before{right:50%!important} +.timeline.timeline-canonical .step.status-running .step-dot,.timeline.timeline-canonical .step.status-waiting .step-dot{animation:timeline-active-breathe 1.45s ease-in-out infinite!important} +.timeline.timeline-canonical .step.status-running .step-dot::after,.timeline.timeline-canonical .step.status-waiting .step-dot::after{content:"";position:absolute;inset:-8px!important;border-radius:999px;border:2px solid rgba(37,99,235,.2)!important;animation:timeline-soft-wave 1.45s ease-out infinite!important;pointer-events:none} } +@media (max-width:520px){.timeline.timeline-canonical{grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:1fr!important;overflow-x:hidden!important;gap:6px!important} +} +.timeline.timeline-canonical{display:grid!important;grid-template-columns:repeat(var(--timeline-phase-count,8),minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-columns:unset!important;grid-auto-rows:auto!important;align-items:start!important;gap:0!important;overflow-x:hidden!important;overflow-y:visible!important;scroll-snap-type:none!important;padding:8px 0 12px!important} +.timeline.timeline-canonical .step{min-width:0!important;max-width:none!important;width:auto!important;display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;text-align:center!important;align-items:start!important;gap:5px!important;padding:6px 2px 2px!important;border:0!important;border-radius:0!important;background:transparent!important;scroll-snap-align:none!important} +.timeline.timeline-canonical .step:before{display:block!important;content:""!important;position:absolute!important;left:0!important;right:0!important;top:21px!important;width:auto!important;height:2px!important;bottom:auto!important;background:var(--tl-line)!important;z-index:0!important} .timeline.timeline-canonical .step:first-child:before{left:50%!important} .timeline.timeline-canonical .step:last-child:before{right:50%!important} .timeline.timeline-canonical .step:after{display:none!important} -.timeline.timeline-canonical .step-dot{ - margin:0 auto!important; - width:28px!important; - height:28px!important; - min-width:28px!important; -} -.timeline.timeline-canonical .step-dot span{ - width:20px!important; - height:20px!important; - font-size:10px!important; -} -.timeline.timeline-canonical .step strong{ - max-width:100%!important; - text-align:center!important; - font-size:9.8px!important; - line-height:1.08!important; - white-space:nowrap!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - margin:0!important; -} -.timeline.timeline-canonical .step small{ - max-width:100%!important; - text-align:center!important; - font-size:8.5px!important; - line-height:1.08!important; - white-space:nowrap!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - margin:1px 0 0!important; -} -.timeline.timeline-canonical .step.status-running .step-dot, -.timeline.timeline-canonical .step.status-waiting .step-dot{ - animation:timeline-active-breathe 1.45s ease-in-out infinite!important; -} -.timeline.timeline-canonical .step.status-running .step-dot::after, -.timeline.timeline-canonical .step.status-waiting .step-dot::after{ - content:""!important; - position:absolute!important; - inset:-8px!important; - border-radius:999px!important; - border:2px solid rgba(37,99,235,.2)!important; - animation:timeline-soft-wave 1.45s ease-out infinite!important; - pointer-events:none!important; -} -@media (max-width:380px){ - .timeline.timeline-canonical .step strong{font-size:9px!important} - .timeline.timeline-canonical .step small{font-size:7.8px!important} - .timeline.timeline-canonical .step-dot{width:25px!important;height:25px!important;min-width:25px!important} - .timeline.timeline-canonical .step-dot span{width:18px!important;height:18px!important;font-size:9px!important} -} - -/* v190.5 — Space Test state-machine and autofill polish */ -.validation-args-note{ - margin:.45rem 0 0; - padding:.55rem .7rem; - border:1px solid rgba(37,99,235,.18); - border-radius:.75rem; - background:rgba(37,99,235,.07); - color:#1d4ed8; - font-size:.82rem; - font-weight:600; -} -.empty-timeline{ - display:block!important; - overflow:visible!important; -} -.empty-timeline .compact-empty{ - width:100%; - display:flex; - flex-direction:column; - gap:.2rem; - text-align:center; -} - -.timeline-skeleton{ - grid-column:1/-1; - border:1px dashed #cbd5e1; - background:#f8fafc; - color:#64748b; - border-radius:14px; - padding:14px 16px; - font-size:13px; - text-align:center; -} - -/* v190.10 — Active Run timeline hotfix */ - -/* v190.15 — Build-first Runs Explorer polish */ -.runs-table{ - gap:12px!important; -} -.run-row.run-list-item{ - border:0!important; - border-radius:20px!important; - background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%)!important; - box-shadow:0 1px 2px rgba(16,24,40,.045),0 10px 30px rgba(15,23,42,.035)!important; - padding:14px 12px!important; - margin:0!important; -} -.run-row.run-list-item + .run-row.run-list-item{border-top:0!important} -.run-row.run-list-item:hover{ - background:#fff!important; - box-shadow:0 12px 32px rgba(15,23,42,.075)!important; -} -.run-row.run-list-item.selected{ - background:#fff!important; - box-shadow:0 0 0 3px rgba(37,99,235,.08),0 12px 32px rgba(15,23,42,.075)!important; -} +.timeline.timeline-canonical .step-dot{margin:0 auto!important;width:28px!important;height:28px!important;min-width:28px!important} +.timeline.timeline-canonical .step-dot span{width:20px!important;height:20px!important;font-size:10px!important} +.timeline.timeline-canonical .step strong{max-width:100%!important;text-align:center!important;font-size:9.8px!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:0!important} +.timeline.timeline-canonical .step small{max-width:100%!important;text-align:center!important;font-size:8.5px!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:1px 0 0!important} +.timeline.timeline-canonical .step.status-running .step-dot,.timeline.timeline-canonical .step.status-waiting .step-dot{animation:timeline-active-breathe 1.45s ease-in-out infinite!important} +.timeline.timeline-canonical .step.status-running .step-dot::after,.timeline.timeline-canonical .step.status-waiting .step-dot::after{content:""!important;position:absolute!important;inset:-8px!important;border-radius:999px!important;border:2px solid rgba(37,99,235,.2)!important;animation:timeline-soft-wave 1.45s ease-out infinite!important;pointer-events:none!important} +@media (max-width:380px){.timeline.timeline-canonical .step strong{font-size:9px!important} +.timeline.timeline-canonical .step small{font-size:7.8px!important} +.timeline.timeline-canonical .step-dot{width:25px!important;height:25px!important;min-width:25px!important} +.timeline.timeline-canonical .step-dot span{width:18px!important;height:18px!important;font-size:9px!important} +} +.validation-args-note{margin:.45rem 0 0;padding:.55rem .7rem;border:1px solid rgba(37,99,235,.18);border-radius:.75rem;background:rgba(37,99,235,.07);color:#1d4ed8;font-size:.82rem;font-weight:600} +.empty-timeline{display:block!important;overflow:visible!important} +.empty-timeline .compact-empty{width:100%;display:flex;flex-direction:column;gap:.2rem;text-align:center} +.timeline-skeleton{grid-column:1/-1;border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:14px;padding:14px 16px;font-size:13px;text-align:center} +.runs-table{gap:12px!important} +.run-row.run-list-item{border:0!important;border-radius:20px!important;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%)!important;box-shadow:0 1px 2px rgba(16,24,40,.045),0 10px 30px rgba(15,23,42,.035)!important;padding:14px 12px!important;margin:0!important} +.run-row.run-list-item+.run-row.run-list-item{border-top:0!important} +.run-row.run-list-item:hover{background:#fff!important;box-shadow:0 12px 32px rgba(15,23,42,.075)!important} +.run-row.run-list-item.selected{background:#fff!important;box-shadow:0 0 0 3px rgba(37,99,235,.08),0 12px 32px rgba(15,23,42,.075)!important} .run-row.validation-run{display:none!important} .run-list-copy{gap:7px!important} .run-list-sub{line-height:1.35!important;color:#667085!important} -.linked-validation-strip{ - display:flex; - flex-wrap:wrap; - gap:6px; - align-items:center; - width:max-content; - max-width:100%; - margin-top:1px; - padding:5px 8px; - border-radius:999px; - background:#f8fafc; - color:#475467; - box-shadow:inset 0 0 0 1px rgba(148,163,184,.18); - font-size:10.5px; - line-height:1.15; -} +.linked-validation-strip{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:max-content;max-width:100%;margin-top:1px;padding:5px 8px;border-radius:999px;background:#f8fafc;color:#475467;box-shadow:inset 0 0 0 1px rgba(148,163,184,.18);font-size:10.5px;line-height:1.15} .linked-validation-strip span{font-weight:800;color:#475467;font-size:10.5px!important} .linked-validation-strip strong{font-size:10.5px!important;font-weight:750;color:#64748b} -.linked-validation-strip.passed{ - background:#ecfdf3; - color:#166534; - box-shadow:inset 0 0 0 1px rgba(34,197,94,.22); -} +.linked-validation-strip.passed{background:#ecfdf3;color:#166534;box-shadow:inset 0 0 0 1px rgba(34,197,94,.22)} .linked-validation-strip.passed span,.linked-validation-strip.passed strong{color:#166534!important} -.linked-validation-strip.failed{ - background:#fff7ed; - color:#9a3412; - box-shadow:inset 0 0 0 1px rgba(249,115,22,.22); -} +.linked-validation-strip.failed{background:#fff7ed;color:#9a3412;box-shadow:inset 0 0 0 1px rgba(249,115,22,.22)} .linked-validation-strip.failed span,.linked-validation-strip.failed strong{color:#9a3412!important} .run-stats-grid.build-first-stats{gap:10px!important} -.run-stats-band.linked-tests-band{ - background:linear-gradient(180deg,#f8fafc,#fff)!important; - border:0!important; - box-shadow:inset 0 0 0 1px rgba(148,163,184,.14)!important; -} -@media (max-width:520px){ - .run-row.run-list-item{padding:13px 10px!important;border-radius:18px!important} - .linked-validation-strip{width:100%;justify-content:space-between;border-radius:14px} +.run-stats-band.linked-tests-band{background:linear-gradient(180deg,#f8fafc,#fff)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(148,163,184,.14)!important} +@media (max-width:520px){.run-row.run-list-item{padding:13px 10px!important;border-radius:18px!important} +.linked-validation-strip{width:100%;justify-content:space-between;border-radius:14px} } - -/* v190.15 — Build-first compatibility cleanup */ .run-row.run-list-item{border-left:0!important;border-right:0!important} .run-row.build-run{background:linear-gradient(180deg,#fff,#fbfaf7)} .run-row .linked-validation-strip{margin-top:10px} - -/* v190.16 — Delete cascade clarity */ .delete-run-meta span strong{letter-spacing:.01em} .delete-run-meta span code{word-break:break-word} -.delete-run-card{ - border-left:0!important; - border-right:0!important; - box-shadow:0 24px 80px rgba(15,23,42,.18)!important; -} -.delete-run-warning{ - border-left:0!important; - border-right:0!important; -} - -/* v190.16 — Build-first Runs Explorer polish */ -/* v190.16 — Build-first compatibility cleanup */ - -/* v190.17 — Effective eval and linked validation provenance */ -.eval-effective-note{ - margin:.45rem 0 .7rem; - padding:.55rem .7rem; - border:0; - border-radius:14px; - background:rgba(34,197,94,.08); - color:#31513a; -} -.eval-effective-note code{font-size:.78rem;} -.metrics-list li em{ - display:block; - margin-top:.18rem; - color:var(--muted,#6b7280); - font-size:.75rem; - font-style:normal; -} - -/* v190.17 — Delete cascade clarity */ - -/* v190.17 — Build-first Runs Explorer polish */ - -/* v190.17 — Build-first compatibility cleanup */ - -/* v190.20 — Build completion matrix + endpoint discovery-first linked Space Test */ +.delete-run-card{border-left:0!important;border-right:0!important;box-shadow:0 24px 80px rgba(15,23,42,.18)!important} +.delete-run-warning{border-left:0!important;border-right:0!important} +.eval-effective-note{margin:.45rem 0 .7rem;padding:.55rem .7rem;border:0;border-radius:14px;background:rgba(34,197,94,.08);color:#31513a} +.eval-effective-note code{font-size:.78rem} +.metrics-list li em{display:block;margin-top:.18rem;color:var(--muted,#6b7280);font-size:.75rem;font-style:normal} .space-test-policy-chip{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.35rem .65rem;background:rgba(99,102,241,.09);color:#3730a3;font-weight:650;border:0;box-shadow:none} .space-test-policy-chip.recover{background:rgba(245,158,11,.12);color:#92400e} .space-test-policy-chip.unavailable,.space-test-policy-chip.blocked{background:rgba(100,116,139,.12);color:#475569} .endpoint-discovery-note{margin-top:.55rem;padding:.7rem .85rem;border-radius:14px;background:rgba(14,165,233,.08);color:#075985;border:0;line-height:1.45} .recovered-build-chip{display:inline-flex;gap:.35rem;align-items:center;border-radius:999px;padding:.25rem .55rem;background:rgba(16,185,129,.12);color:#047857;border:0} -/* v190.20 — Build-first Runs Explorer polish */ -/* v190.20 — Build-first compatibility cleanup */ -/* v190.20 — Delete cascade clarity */ -/* v190.20 — Effective eval and linked validation provenance */ - -/* v190.20 UI/CSS convergence cleanup */ -.timeline-placeholder{display:block!important;grid-template-columns:none!important;min-height:72px;padding:10px 0;} -.timeline-placeholder .timeline-skeleton, -.timeline .timeline-skeleton{display:flex;align-items:center;justify-content:center;min-height:64px;border:1px dashed rgba(148,163,184,.38);border-radius:18px;background:linear-gradient(180deg,rgba(248,250,252,.92),rgba(255,255,255,.88));color:#64748b;font-weight:650;letter-spacing:.01em;} -.timeline:not(.timeline-canonical) .step{display:none!important;} -.eval-archive-body{display:flex;flex-direction:column;gap:12px;} -.eval-archive-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0;} -.eval-archive-kv>div{display:grid;grid-template-columns:minmax(104px,max-content) minmax(0,1fr);column-gap:10px;align-items:baseline;min-width:0;padding:0;} -.eval-archive-kv dt{margin:0;color:#667085;font-size:13px;font-weight:600;white-space:nowrap;} -.eval-archive-kv dd{margin:0;color:#111827;font-size:14px;font-weight:750;min-width:0;overflow-wrap:anywhere;} -.eval-record-path{display:block;width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid rgba(148,163,184,.32);border-radius:12px;background:#f8fafc;color:#334155;overflow-wrap:anywhere;white-space:normal;} -.eval-archive-grid{display:none!important;} -.validation-result-card{border:1px solid rgba(147,197,253,.62);background:linear-gradient(180deg,#f8fbff 0%,#fbfdff 100%);border-radius:20px;padding:16px;box-shadow:0 16px 36px rgba(15,23,42,.045);} -.validation-result-card .validation-grid{gap:16px 20px;} -.validation-result-card .validation-grid>div{min-width:0;} -.validation-result-card .validation-grid span{color:#667085;font-weight:550;} -.validation-result-card .validation-grid strong{overflow-wrap:anywhere;} -.validation-result-card .validation-grid code{font-size:.92em;} -.validation-endpoints-card{border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.82);border-radius:18px;padding:14px 16px;margin-top:14px;box-shadow:0 8px 22px rgba(15,23,42,.035);} -.linked-context-card{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:8px 14px;align-items:baseline;color:#334155;} -.linked-context-card>span{color:#667085;font-size:13px;font-weight:650;} -.linked-context-card>strong{font-size:14px;color:#111827;min-width:0;overflow-wrap:anywhere;} -.linked-context-card code{font-size:.9em;white-space:normal;overflow-wrap:anywhere;} -.validation-progress-caption[hidden], -.validation-progress-bar[hidden], -.validation-timeline[hidden]{display:none!important;} -.validation-progress-caption{margin-top:14px;} -.validation-timeline .empty.compact-empty{border:0;background:transparent;padding:6px 0;color:#667085;} -#launchValidate{margin-top:12px;} -@media(max-width:760px){ - .eval-archive-kv{grid-template-columns:1fr;} - .eval-archive-kv>div,.linked-context-card{grid-template-columns:1fr;gap:3px;} - .validation-result-card{padding:14px;border-radius:18px;} -} - -/* v190.20 — Space Test validation card final polish */ -#spaceTestContextCard{border:0!important;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,250,252,.88))!important;box-shadow:0 10px 28px rgba(15,23,42,.05)!important;} -#spaceTestContextCard .card-title-row{margin-bottom:12px!important;} -#spaceTestContextTitle{font-size:15px!important;letter-spacing:-.01em!important;} -#spaceTestContextHint{font-size:12px!important;color:#94a3b8!important;} -.linked-context-card--pretty,.linked-context-card--compact{padding:2px 0!important;} -.linked-context-card--pretty>span,.linked-context-card--compact>span{text-transform:uppercase;letter-spacing:.08em;font-size:10px!important;color:#94a3b8!important;} -.linked-context-card--pretty>strong,.linked-context-card--compact>strong{font-size:13.5px!important;line-height:1.35!important;} -.linked-context-card--pretty code,.linked-context-card--compact code{background:rgba(99,102,241,.06);border:1px solid rgba(99,102,241,.10);padding:2px 5px;border-radius:8px;} -.validation-result-card .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr));} -.validation-result-card .validation-grid>div{padding:0!important;border:0!important;background:transparent!important;} -.validation-result-card .validation-grid span{display:block;margin-bottom:5px;font-size:12.5px;} -.validation-result-card .validation-grid strong{display:inline-flex;align-items:center;min-height:24px;font-size:14px;line-height:1.35;} -.validation-result-card .badge{min-height:28px;padding:.38rem .68rem;} -.validation-actions{gap:10px!important;margin-top:14px!important;} -.validation-actions button.full{border-radius:14px!important;min-height:44px!important;} -@media(max-width:760px){.validation-result-card .validation-grid{grid-template-columns:1fr;}#spaceTestContextCard{padding:13px!important;}} - -/* v190.24 — Space Test Validation reliability and state clarity */ -.space-test-panel .validation-help{ - max-width: 860px; - line-height: 1.55; -} -.space-test-advanced{ - margin-top: 12px; - border: 0; - border-radius: 18px; - background: rgba(248,250,252,.78); - box-shadow: inset 0 0 0 1px rgba(148,163,184,.14); - padding: 10px 12px 12px; -} -.space-test-advanced>summary{ - cursor: pointer; - font-weight: 720; - color: #334155; - letter-spacing: -.01em; - padding: 4px 2px 10px; -} -.space-test-advanced .editor-grid{ - margin-top: 4px; -} -.launch-readiness{ - margin-top: 10px!important; - border-radius: 14px; - padding: 9px 12px; - font-weight: 650; -} -.launch-readiness.ready{ - color: #047857; - background: rgba(16,185,129,.09); - box-shadow: inset 0 0 0 1px rgba(16,185,129,.18); -} -.launch-readiness.blocked{ - color: #92400e; - background: rgba(245,158,11,.10); - box-shadow: inset 0 0 0 1px rgba(245,158,11,.18); -} -.linked-context-card--pretty{ - display:grid!important; - grid-template-columns:minmax(120px,max-content) minmax(0,1fr)!important; - gap:10px 16px!important; -} -.linked-context-card--pretty>strong{ - min-width:0; - overflow-wrap:anywhere; -} -.validation-result-card{ - border:0!important; - border-radius:22px!important; - background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))!important; - box-shadow:0 18px 44px rgba(15,23,42,.07)!important; -} -.validation-result-card .validation-grid{ - gap:12px 20px!important; -} -.validation-result-card .validation-grid>div{ - min-width:0; -} -.validation-result-card .validation-grid strong{ - overflow-wrap:anywhere; -} -.validation-actions button.primary.full{ - box-shadow:0 12px 24px rgba(79,70,229,.18)!important; -} -@media(max-width:760px){ - .linked-context-card--pretty{grid-template-columns:1fr!important;gap:4px 0!important;} - .space-test-advanced{padding:10px;} -} -/* v190.24 — Effective eval and linked validation provenance */ -/* v190.24 — Build-first Runs Explorer polish */ -/* v190.24 — Build-first compatibility cleanup */ -/* v190.24 — Delete cascade clarity */ - -/* v190.33 — Space Test Validation reliability */ -.space-test-reset-state .validation-progress-bar, -.space-test-reset-state #spaceTestTimeline{display:none!important;} -.validation-args-note.launch-readiness.blocked{background:#fff7ed;border-color:#fed7aa;color:#9a3412;} -.validation-args-note.launch-readiness.ready{background:#ecfdf5;border-color:#bbf7d0;color:#166534;} -/* v190.33 — Build-first Runs Explorer polish */ -/* v190.33 — Build-first compatibility cleanup */ -/* v190.33 — Delete cascade clarity */ -/* v190.33 — Effective eval and linked validation provenance */ - -/* v190.33 — Eval archive run-scoped reset and stable key/value layout */ -.run-eval-archive-card{ - min-width:0!important; - overflow:hidden!important; -} -.run-eval-archive-card[hidden]{display:none!important;} -.eval-archive-body{ - min-width:0!important; - overflow:hidden!important; -} -.eval-archive-kv{ - display:grid!important; - grid-template-columns:1fr!important; - gap:9px!important; - margin:0!important; - min-width:0!important; -} -.eval-archive-kv>div{ - display:grid!important; - grid-template-columns:minmax(112px,148px) minmax(0,1fr)!important; - column-gap:12px!important; - row-gap:2px!important; - align-items:baseline!important; - min-width:0!important; - padding:0!important; -} -.eval-archive-kv dt{ - margin:0!important; - color:#667085!important; - font-size:12.5px!important; - font-weight:680!important; - line-height:1.25!important; - white-space:normal!important; - overflow-wrap:normal!important; - word-break:normal!important; -} -.eval-archive-kv dd{ - margin:0!important; - min-width:0!important; - color:#111827!important; - font-size:13.5px!important; - font-weight:760!important; - line-height:1.32!important; - white-space:normal!important; - overflow-wrap:break-word!important; - word-break:normal!important; - hyphens:none!important; -} -.eval-archive-kv dd code, -.eval-effective-note code, -.eval-record-path{ - white-space:normal!important; - overflow-wrap:anywhere!important; - word-break:break-word!important; -} -.eval-record-path{ - max-width:100%!important; - font-size:12.5px!important; - line-height:1.35!important; -} -.eval-warning{ - margin:0!important; - padding:9px 11px!important; - border-radius:12px!important; - background:#fff7ed!important; - color:#9a3412!important; - overflow-wrap:break-word!important; -} -@media(max-width:720px){ - .eval-archive-kv>div{grid-template-columns:1fr!important;gap:3px!important;} - .eval-archive-kv dt{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px!important;} -} - -/* v191.5: model scan build-risk card and auth-context warning */ -.prescan-build-risk{ - display:grid!important; - gap:6px!important; - border:1px solid rgba(226,232,240,.95)!important; - background:rgba(255,255,255,.76)!important; - border-radius:12px!important; - padding:8px!important; -} +.timeline-placeholder{display:block!important;grid-template-columns:none!important;min-height:72px;padding:10px 0} +.timeline-placeholder .timeline-skeleton,.timeline .timeline-skeleton{display:flex;align-items:center;justify-content:center;min-height:64px;border:1px dashed rgba(148,163,184,.38);border-radius:18px;background:linear-gradient(180deg,rgba(248,250,252,.92),rgba(255,255,255,.88));color:#64748b;font-weight:650;letter-spacing:.01em} +.timeline:not(.timeline-canonical) .step{display:none!important} +.eval-archive-body{display:flex;flex-direction:column;gap:12px} +.eval-archive-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0} +.eval-archive-kv>div{display:grid;grid-template-columns:minmax(104px,max-content) minmax(0,1fr);column-gap:10px;align-items:baseline;min-width:0;padding:0} +.eval-archive-kv dt{margin:0;color:#667085;font-size:13px;font-weight:600;white-space:nowrap} +.eval-archive-kv dd{margin:0;color:#111827;font-size:14px;font-weight:750;min-width:0;overflow-wrap:anywhere} +.eval-record-path{display:block;width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid rgba(148,163,184,.32);border-radius:12px;background:#f8fafc;color:#334155;overflow-wrap:anywhere;white-space:normal} +.eval-archive-grid{display:none!important} +.validation-result-card{border:1px solid rgba(147,197,253,.62);background:linear-gradient(180deg,#f8fbff 0%,#fbfdff 100%);border-radius:20px;padding:16px;box-shadow:0 16px 36px rgba(15,23,42,.045)} +.validation-result-card .validation-grid{gap:16px 20px} +.validation-result-card .validation-grid>div{min-width:0} +.validation-result-card .validation-grid span{color:#667085;font-weight:550} +.validation-result-card .validation-grid strong{overflow-wrap:anywhere} +.validation-result-card .validation-grid code{font-size:.92em} +.validation-endpoints-card{border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.82);border-radius:18px;padding:14px 16px;margin-top:14px;box-shadow:0 8px 22px rgba(15,23,42,.035)} +.linked-context-card{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:8px 14px;align-items:baseline;color:#334155} +.linked-context-card>span{color:#667085;font-size:13px;font-weight:650} +.linked-context-card>strong{font-size:14px;color:#111827;min-width:0;overflow-wrap:anywhere} +.linked-context-card code{font-size:.9em;white-space:normal;overflow-wrap:anywhere} +.validation-progress-caption[hidden],.validation-progress-bar[hidden],.validation-timeline[hidden]{display:none!important} +.validation-progress-caption{margin-top:14px} +.validation-timeline .empty.compact-empty{border:0;background:transparent;padding:6px 0;color:#667085} +#launchValidate{margin-top:12px} +@media(max-width:760px){.eval-archive-kv{grid-template-columns:1fr} +.eval-archive-kv>div,.linked-context-card{grid-template-columns:1fr;gap:3px} +.validation-result-card{padding:14px;border-radius:18px} +} +#spaceTestContextCard{border:0!important;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,250,252,.88))!important;box-shadow:0 10px 28px rgba(15,23,42,.05)!important} +#spaceTestContextCard .card-title-row{margin-bottom:12px!important} +#spaceTestContextTitle{font-size:15px!important;letter-spacing:-.01em!important} +#spaceTestContextHint{font-size:12px!important;color:#94a3b8!important} +.linked-context-card--pretty,.linked-context-card--compact{padding:2px 0!important} +.linked-context-card--pretty>span,.linked-context-card--compact>span{text-transform:uppercase;letter-spacing:.08em;font-size:10px!important;color:#94a3b8!important} +.linked-context-card--pretty>strong,.linked-context-card--compact>strong{font-size:13.5px!important;line-height:1.35!important} +.linked-context-card--pretty code,.linked-context-card--compact code{background:rgba(99,102,241,.06);border:1px solid rgba(99,102,241,.10);padding:2px 5px;border-radius:8px} +.validation-result-card .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr))} +.validation-result-card .validation-grid>div{padding:0!important;border:0!important;background:transparent!important} +.validation-result-card .validation-grid span{display:block;margin-bottom:5px;font-size:12.5px} +.validation-result-card .validation-grid strong{display:inline-flex;align-items:center;min-height:24px;font-size:14px;line-height:1.35} +.validation-result-card .badge{min-height:28px;padding:.38rem .68rem} +.validation-actions{gap:10px!important;margin-top:14px!important} +.validation-actions button.full{border-radius:14px!important;min-height:44px!important} +@media(max-width:760px){.validation-result-card .validation-grid{grid-template-columns:1fr} +#spaceTestContextCard{padding:13px!important} +} +.space-test-panel .validation-help{max-width:860px;line-height:1.55} +.space-test-advanced{margin-top:12px;border:0;border-radius:18px;background:rgba(248,250,252,.78);box-shadow:inset 0 0 0 1px rgba(148,163,184,.14);padding:10px 12px 12px} +.space-test-advanced>summary{cursor:pointer;font-weight:720;color:#334155;letter-spacing:-.01em;padding:4px 2px 10px} +.space-test-advanced .editor-grid{margin-top:4px} +.launch-readiness{margin-top:10px!important;border-radius:14px;padding:9px 12px;font-weight:650} +.launch-readiness.ready{color:#047857;background:rgba(16,185,129,.09);box-shadow:inset 0 0 0 1px rgba(16,185,129,.18)} +.launch-readiness.blocked{color:#92400e;background:rgba(245,158,11,.10);box-shadow:inset 0 0 0 1px rgba(245,158,11,.18)} +.linked-context-card--pretty{display:grid!important;grid-template-columns:minmax(120px,max-content) minmax(0,1fr)!important;gap:10px 16px!important} +.linked-context-card--pretty>strong{min-width:0;overflow-wrap:anywhere} +.validation-result-card{border:0!important;border-radius:22px!important;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))!important;box-shadow:0 18px 44px rgba(15,23,42,.07)!important} +.validation-result-card .validation-grid{gap:12px 20px!important} +.validation-result-card .validation-grid>div{min-width:0} +.validation-result-card .validation-grid strong{overflow-wrap:anywhere} +.validation-actions button.primary.full{box-shadow:0 12px 24px rgba(79,70,229,.18)!important} +@media(max-width:760px){.linked-context-card--pretty{grid-template-columns:1fr!important;gap:4px 0!important} +.space-test-advanced{padding:10px} +} +.space-test-reset-state .validation-progress-bar,.space-test-reset-state #spaceTestTimeline{display:none!important} +.validation-args-note.launch-readiness.blocked{background:#fff7ed;border-color:#fed7aa;color:#9a3412} +.validation-args-note.launch-readiness.ready{background:#ecfdf5;border-color:#bbf7d0;color:#166534} +.run-eval-archive-card{min-width:0!important;overflow:hidden!important} +.run-eval-archive-card[hidden]{display:none!important} +.eval-archive-body{min-width:0!important;overflow:hidden!important} +.eval-archive-kv{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin:0!important;min-width:0!important} +.eval-archive-kv>div{display:grid!important;grid-template-columns:minmax(112px,148px) minmax(0,1fr)!important;column-gap:12px!important;row-gap:2px!important;align-items:baseline!important;min-width:0!important;padding:0!important} +.eval-archive-kv dt{margin:0!important;color:#667085!important;font-size:12.5px!important;font-weight:680!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important} +.eval-archive-kv dd{margin:0!important;min-width:0!important;color:#111827!important;font-size:13.5px!important;font-weight:760!important;line-height:1.32!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important} +.eval-archive-kv dd code,.eval-effective-note code,.eval-record-path{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important} +.eval-record-path{max-width:100%!important;font-size:12.5px!important;line-height:1.35!important} +.eval-warning{margin:0!important;padding:9px 11px!important;border-radius:12px!important;background:#fff7ed!important;color:#9a3412!important;overflow-wrap:break-word!important} +@media(max-width:720px){.eval-archive-kv>div{grid-template-columns:1fr!important;gap:3px!important} +.eval-archive-kv dt{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px!important} +} +.prescan-build-risk{display:grid!important;gap:6px!important;border:1px solid rgba(226,232,240,.95)!important;background:rgba(255,255,255,.76)!important;border-radius:12px!important;padding:8px!important} .prescan-build-risk.success{border-color:rgba(34,197,94,.20)!important;background:rgba(240,253,244,.58)!important} .prescan-build-risk.warn{border-color:rgba(245,158,11,.24)!important;background:rgba(255,251,235,.66)!important} .prescan-build-risk.error{border-color:rgba(244,63,94,.20)!important;background:rgba(255,241,242,.62)!important} @@ -3156,206 +1388,164 @@ strong,p,h1,h2,h3,h4,span,a,button,div,li{overflow-wrap:break-word;word-break:no .prescan-auth-risk.warn{border-color:rgba(245,158,11,.22)!important;background:rgba(255,251,235,.78)!important} .prescan-auth-risk.error{border-color:rgba(244,63,94,.20)!important;background:rgba(255,241,242,.78)!important} .prescan-risk-signals{margin-top:1px!important} -@media(max-width:720px){.prescan-build-risk-head{display:grid!important}.prescan-build-risk-head span{text-align:left!important}.prescan-auth-risk{display:grid!important}} - - -/* v191.10: native kernel / HF Kernels strategy hints */ -.prescan-kernel-strategy{ - display:grid!important; - gap:6px!important; - border:1px solid rgba(245,158,11,.24)!important; - background:rgba(255,251,235,.66)!important; - border-radius:12px!important; - padding:8px!important; +@media(max-width:720px){.prescan-build-risk-head{display:grid!important} +.prescan-build-risk-head span{text-align:left!important} +.prescan-auth-risk{display:grid!important} } +.prescan-kernel-strategy{display:grid!important;gap:6px!important;border:1px solid rgba(245,158,11,.24)!important;background:rgba(255,251,235,.66)!important;border-radius:12px!important;padding:8px!important} .prescan-kernel-hint{font-size:11.5px!important;line-height:1.35!important;color:#92400e!important;overflow-wrap:break-word!important} - -/* v192.2: compact model pre-scan card. Details stay available but collapsed by default. */ -.prescan-details{ - border-top:1px solid rgba(226,232,240,.78)!important; - margin-top:2px!important; - padding-top:5px!important; -} -.prescan-details summary{ - cursor:pointer!important; - color:#475569!important; - font-size:11px!important; - font-weight:800!important; - line-height:1.25!important; - list-style-position:inside!important; -} +.prescan-details{border-top:1px solid rgba(226,232,240,.78)!important;margin-top:2px!important;padding-top:5px!important} +.prescan-details summary{cursor:pointer!important;color:#475569!important;font-size:11px!important;font-weight:800!important;line-height:1.25!important;list-style-position:inside!important} .prescan-details summary:hover{color:#1d4ed8!important} .prescan-detail-section{display:grid!important;gap:3px!important;margin-top:7px!important} -.prescan-detail-section b{ - color:#334155!important; - font-size:10px!important; - letter-spacing:.10em!important; - text-transform:uppercase!important; -} +.prescan-detail-section b{color:#334155!important;font-size:10px!important;letter-spacing:.10em!important;text-transform:uppercase!important} .prescan-detail-section ul{margin:0!important;padding-left:18px!important;display:grid!important;gap:2px!important} .prescan-detail-section li{font-size:11.5px!important;line-height:1.35!important;color:#475569!important;overflow-wrap:anywhere!important} -.prescan-chip-more{ - display:inline-flex!important; - align-items:center!important; - border-radius:999px!important; - border:1px solid rgba(148,163,184,.35)!important; - background:rgba(248,250,252,.86)!important; - color:#64748b!important; - font-size:10.5px!important; - font-weight:800!important; - padding:3px 6px!important; - line-height:1!important; -} - -/* v192.11: robust pre-scan layout guards - Keep the compact pre-scan readable in narrow side panels and with long - model-card/kernel/auth strings. This is a CSS-only pass: no scan scoring, - backend payload, or launch-gate behavior changes. */ -.model-prescan-card, -.model-prescan-card *{ - box-sizing:border-box!important; -} -.model-prescan-card{ - max-width:100%!important; - overflow:hidden!important; - contain:layout paint!important; -} -.model-prescan-head{ - display:grid!important; - grid-template-columns:minmax(0, 1fr) auto!important; - align-items:start!important; - gap:8px!important; -} -.model-prescan-head>div, -.model-prescan-head strong, -.model-prescan-head .mini-kicker{ - min-width:0!important; - max-width:100%!important; -} -.model-prescan-head .badge{ - max-width:100%!important; - justify-self:end!important; - white-space:nowrap!important; -} -.model-prescan-card>p, -.model-prescan-signals, -.prescan-meta, -.prescan-build-risk, -.prescan-kernel-strategy, -.prescan-decision-line, -.prescan-details{ - min-width:0!important; - max-width:100%!important; -} -.prescan-compact-grid{ - grid-template-columns:repeat(auto-fit,minmax(min(118px,100%),1fr))!important; -} -.prescan-chip{ - min-width:0!important; - max-width:100%!important; - overflow:hidden!important; -} -.prescan-chip strong{ - min-width:0!important; - max-width:100%!important; -} -.prescan-build-risk-head{ - display:grid!important; - grid-template-columns:minmax(0,max-content) minmax(0,1fr)!important; - align-items:start!important; - gap:6px 8px!important; -} -.prescan-build-risk-head b{ - min-width:0!important; -} -.prescan-build-risk-head span{ - min-width:0!important; - max-width:100%!important; - text-align:left!important; - overflow-wrap:anywhere!important; - word-break:break-word!important; -} -.prescan-auth-risk{ - min-width:0!important; - max-width:100%!important; -} -.prescan-auth-risk span, -.prescan-kernel-hint, -.prescan-decision-line span{ - min-width:0!important; - max-width:100%!important; - overflow-wrap:anywhere!important; - word-break:break-word!important; -} -.prescan-pill-row{ - min-width:0!important; - max-width:100%!important; - overflow:hidden!important; -} -.prescan-pill{ - flex:0 1 auto!important; - min-width:0!important; - max-width:100%!important; -} -.prescan-pill .prescan-icon{ - flex:0 0 auto!important; -} -.prescan-chip-more{ - flex:0 0 auto!important; - align-self:center!important; -} -.prescan-details summary{ - max-width:100%!important; - overflow:hidden!important; - text-overflow:ellipsis!important; - white-space:nowrap!important; -} -@media(max-width:980px){ - .model-prescan-head{ - grid-template-columns:1fr!important; - } - .model-prescan-head .badge{ - justify-self:start!important; - } - .prescan-build-risk-head{ - grid-template-columns:1fr!important; - } -} -@media(max-width:520px){ - .prescan-pill{ - white-space:normal!important; - } - .prescan-details summary{ - white-space:normal!important; - } -} - -/* v192.14 — Run Explorer selection hydration feedback */ -.run-row.run-list-item.is-loading{ - position:relative; - border-color:#bfdbfe!important; - background:linear-gradient(180deg,#eff6ff 0%,#fff 72%)!important; - box-shadow:0 0 0 3px rgba(37,99,235,.08)!important; - overflow:hidden; -} -.run-row.run-list-item.is-loading::after{ - content:""; - position:absolute; - inset:0; - pointer-events:none; - background:linear-gradient(90deg,transparent,rgba(59,130,246,.12),transparent); - transform:translateX(-100%); - animation:run-selection-sweep 1.2s ease-in-out infinite; -} -.run-row.run-list-item.is-loading .run-list-dot{ - animation:step-running-pulse 1.1s ease-in-out infinite; -} -.run-row.run-list-item.is-loading .run-status-pill{ - background:#eff6ff!important; - color:#1d4ed8!important; - border-color:#bfdbfe!important; -} -@keyframes run-selection-sweep{ - from{transform:translateX(-100%)} - to{transform:translateX(100%)} -} +.prescan-chip-more{display:inline-flex!important;align-items:center!important;border-radius:999px!important;border:1px solid rgba(148,163,184,.35)!important;background:rgba(248,250,252,.86)!important;color:#64748b!important;font-size:10.5px!important;font-weight:800!important;padding:3px 6px!important;line-height:1!important} +.model-prescan-card,.model-prescan-card *{box-sizing:border-box!important} +.model-prescan-card{max-width:100%!important;overflow:hidden!important;contain:layout paint!important} +.model-prescan-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:8px!important} +.model-prescan-head>div,.model-prescan-head strong,.model-prescan-head .mini-kicker{min-width:0!important;max-width:100%!important} +.model-prescan-head .badge{max-width:100%!important;justify-self:end!important;white-space:nowrap!important} +.model-prescan-card>p,.model-prescan-signals,.prescan-meta,.prescan-build-risk,.prescan-kernel-strategy,.prescan-decision-line,.prescan-details{min-width:0!important;max-width:100%!important} +.prescan-compact-grid{grid-template-columns:repeat(auto-fit,minmax(min(118px,100%),1fr))!important} +.prescan-chip{min-width:0!important;max-width:100%!important;overflow:hidden!important} +.prescan-chip strong{min-width:0!important;max-width:100%!important} +.prescan-build-risk-head{display:grid!important;grid-template-columns:minmax(0,max-content) minmax(0,1fr)!important;align-items:start!important;gap:6px 8px!important} +.prescan-build-risk-head b{min-width:0!important} +.prescan-build-risk-head span{min-width:0!important;max-width:100%!important;text-align:left!important;overflow-wrap:anywhere!important;word-break:break-word!important} +.prescan-auth-risk{min-width:0!important;max-width:100%!important} +.prescan-auth-risk span,.prescan-kernel-hint,.prescan-decision-line span{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important;word-break:break-word!important} +.prescan-pill-row{min-width:0!important;max-width:100%!important;overflow:hidden!important} +.prescan-pill{flex:0 1 auto!important;min-width:0!important;max-width:100%!important} +.prescan-pill .prescan-icon{flex:0 0 auto!important} +.prescan-chip-more{flex:0 0 auto!important;align-self:center!important} +.prescan-details summary{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important} +@media(max-width:980px){.model-prescan-head{grid-template-columns:1fr!important} +.model-prescan-head .badge{justify-self:start!important} +.prescan-build-risk-head{grid-template-columns:1fr!important} +} +@media(max-width:520px){.prescan-pill{white-space:normal!important} +.prescan-details summary{white-space:normal!important} +} +.center-stack.is-run-loading>.center-tabs,.center-stack.is-run-loading>.center-tab-panel.active{border-color:#bfdbfe!important;box-shadow:0 0 0 3px rgba(37,99,235,.07),0 10px 28px rgba(15,23,42,.06)!important;animation:center-workspace-loading-border 1.25s ease-in-out infinite} +.center-stack.is-run-loading>.center-tab-panel.active{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)} +.center-stack.is-run-loading>.center-tabs .center-tab.active{border-color:#bfdbfe!important} +@keyframes center-workspace-loading-border{0%,100%{border-color:#dbeafe;box-shadow:0 0 0 2px rgba(37,99,235,.045),0 10px 28px rgba(15,23,42,.05)} +50%{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.10),0 12px 32px rgba(37,99,235,.08)} +} +.delete-run-modal.is-deleting .delete-run-card{border-color:#fecdd3!important;box-shadow:0 0 0 3px rgba(225,29,72,.08),0 28px 86px rgba(15,23,42,.20)!important;overflow:hidden;animation:delete-modal-loading-border 1.25s ease-in-out infinite} +.delete-run-modal.is-deleting .delete-run-card::after{content:"";position:absolute;left:18px;right:18px;top:0;height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(225,29,72,.62),transparent);transform:translateX(-110%);animation:delete-modal-sweep 1.15s ease-in-out infinite;pointer-events:none} +.delete-run-modal.is-deleting .delete-run-icon{animation:delete-modal-icon-pulse 1.15s ease-in-out infinite} +@keyframes delete-modal-loading-border{0%,100%{border-color:#fecdd3;box-shadow:0 0 0 2px rgba(225,29,72,.045),0 28px 86px rgba(15,23,42,.18)} +50%{border-color:#fb7185;box-shadow:0 0 0 4px rgba(225,29,72,.10),0 30px 92px rgba(225,29,72,.10)} +} +@keyframes delete-modal-sweep{from{transform:translateX(-110%)} +to{transform:translateX(110%)} +} +@keyframes delete-modal-icon-pulse{0%,100%{transform:scale(1)} +50%{transform:scale(1.04)} +} +@media (prefers-reduced-motion:reduce){.center-stack.is-run-loading>.center-tabs,.center-stack.is-run-loading>.center-tab-panel.active,.delete-run-modal.is-deleting .delete-run-card,.delete-run-modal.is-deleting .delete-run-card::after,.delete-run-modal.is-deleting .delete-run-icon{animation:none!important} +} +.run-row.run-list-item.is-loading{position:relative;border-color:#bfdbfe!important;background:linear-gradient(180deg,#eff6ff 0%,#fff 72%)!important;box-shadow:0 0 0 3px rgba(37,99,235,.08)!important;overflow:hidden} +.run-row.run-list-item.is-loading::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(59,130,246,.12),transparent);transform:translateX(-100%);animation:run-selection-sweep 1.2s ease-in-out infinite} +.run-row.run-list-item.is-loading .run-list-dot{animation:step-running-pulse 1.1s ease-in-out infinite} +.run-row.run-list-item.is-loading .run-status-pill{background:#eff6ff!important;color:#1d4ed8!important;border-color:#bfdbfe!important} +@keyframes run-selection-sweep{from{transform:translateX(-100%)} +to{transform:translateX(100%)} +} +.model-prescan-card.prescan-decision-card{position:relative!important;isolation:isolate!important;padding:14px!important;gap:10px!important;border-radius:18px!important;border-color:rgba(226,232,240,.95)!important;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))!important;box-shadow:0 16px 38px rgba(15,23,42,.055),0 1px 0 rgba(255,255,255,.95) inset!important} +.model-prescan-card.prescan-decision-card.success{border-color:rgba(34,197,94,.22)!important;background:radial-gradient(circle at 100% 0%,rgba(34,197,94,.12),transparent 35%),linear-gradient(180deg,#fff,#f8fffb)!important} +.model-prescan-card.prescan-decision-card.warn{border-color:rgba(245,158,11,.24)!important;background:radial-gradient(circle at 100% 0%,rgba(245,158,11,.13),transparent 36%),linear-gradient(180deg,#fff,#fffdf7)!important} +.model-prescan-card.prescan-decision-card.error{border-color:rgba(244,63,94,.22)!important;background:radial-gradient(circle at 100% 0%,rgba(244,63,94,.12),transparent 35%),linear-gradient(180deg,#fff,#fff8f8)!important} +.model-prescan-card.prescan-decision-card.running{border-color:rgba(37,99,235,.24)!important;background:radial-gradient(circle at 100% 0%,rgba(37,99,235,.13),transparent 35%),linear-gradient(180deg,#fff,#f8fbff)!important} +.model-prescan-card.prescan-decision-card .model-prescan-head{align-items:flex-start!important} +.model-prescan-card.prescan-decision-card .model-prescan-head strong{font-size:16px!important;line-height:1.18!important;letter-spacing:-.035em!important;white-space:normal!important} +.model-prescan-card.prescan-decision-card>p{max-width:56ch!important;font-size:12.75px!important;line-height:1.48!important;color:#475569!important} +.model-prescan-card.prescan-decision-card .model-prescan-signals{gap:9px!important} +.prescan-decision-facts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important} +.prescan-decision-fact{min-height:48px!important;border-radius:14px!important;padding:8px 9px!important;background:rgba(255,255,255,.82)!important;border-color:rgba(226,232,240,.82)!important;box-shadow:0 1px 0 rgba(255,255,255,.85) inset!important} +.prescan-decision-fact i{width:24px!important;height:24px!important;border-radius:10px!important} +.prescan-decision-fact em{font-size:8px!important;letter-spacing:.16em!important} +.prescan-decision-fact strong{font-size:11.8px!important;line-height:1.2!important} +.prescan-automation-note{display:flex!important;gap:8px!important;align-items:flex-start!important;padding:8px 9px!important;border:1px solid rgba(59,130,246,.16)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(239,246,255,.72),rgba(255,255,255,.72))!important;min-width:0!important} +.prescan-automation-note b{flex:0 0 auto!important;font-size:9px!important;line-height:1.4!important;text-transform:uppercase!important;letter-spacing:.13em!important;color:#1d4ed8!important} +.prescan-automation-note span{border:0!important;background:transparent!important;padding:0!important;font-size:11.8px!important;line-height:1.38!important;color:#334155!important;overflow-wrap:anywhere!important} +.prescan-action-warnings{display:grid!important;gap:6px!important} +.prescan-action-warning{display:flex!important;align-items:flex-start!important;gap:7px!important;padding:7px 8px!important;border:1px solid rgba(245,158,11,.22)!important;border-radius:13px!important;background:rgba(255,251,235,.70)!important;color:#78350f!important} +.prescan-action-warning b{display:inline-grid!important;place-items:center!important;width:18px!important;height:18px!important;flex:0 0 auto!important;border-radius:999px!important;background:rgba(254,243,199,.95)!important;font-size:12px!important;line-height:1!important} +.prescan-action-warning span{border:0!important;background:transparent!important;padding:0!important;font-size:11.8px!important;line-height:1.35!important;color:#78350f!important} +.model-prescan-card.prescan-decision-card .prescan-details{margin-top:0!important;border-top:1px solid rgba(226,232,240,.76)!important;padding-top:7px!important} +.model-prescan-card.prescan-decision-card .prescan-details summary{font-size:11.5px!important;color:#475569!important} +.prescan-skeleton-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important} +.prescan-skeleton{display:block!important;min-height:42px!important;border-radius:14px!important;border:1px solid rgba(191,219,254,.58)!important;background:linear-gradient(90deg,rgba(239,246,255,.70),rgba(255,255,255,.94),rgba(239,246,255,.70))!important;background-size:220% 100%!important;animation:prescan-skeleton-shimmer 1.35s ease-in-out infinite!important} +.prescan-skeleton.wide{grid-column:1/-1!important;min-height:32px!important} +.model-prescan-card.prescan-decision-card.is-scanning{overflow:hidden!important;box-shadow:0 0 0 3px rgba(37,99,235,.06),0 16px 38px rgba(15,23,42,.055)!important} +.model-prescan-card.prescan-decision-card.is-scanning:after{content:""!important;position:absolute!important;inset:0!important;pointer-events:none!important;background:linear-gradient(90deg,transparent,rgba(37,99,235,.10),transparent)!important;transform:translateX(-115%)!important;animation:prescan-card-sweep 1.45s ease-in-out infinite!important;z-index:1!important} +.model-prescan-card.prescan-decision-card.is-scanning>*{position:relative!important;z-index:2!important} +@keyframes prescan-card-sweep{0%{transform:translateX(-115%)} +100%{transform:translateX(115%)} +} +@keyframes prescan-skeleton-shimmer{0%{background-position:0% 50%} +100%{background-position:220% 50%} +} +@media(max-width:720px){.prescan-decision-facts,.prescan-skeleton-grid{grid-template-columns:1fr!important} +.prescan-skeleton.wide{grid-column:auto!important} +.prescan-automation-note{display:grid!important} +} +@media(prefers-reduced-motion:reduce){.model-prescan-card.prescan-decision-card.is-scanning:after,.prescan-skeleton{animation:none!important} +} +/* legacy regression anchors retained: conic-gradient(from -90deg */ +/* v196 legacy regression anchors retained for historical tests: +v105: UI cleanup +v124: stabilization override +animation: timeline-current-pulse +v147 — UI/UX verification polish +v149 — align compact timeline classes +v151 — UI refresh and layout stabilization +v160 premium destructive action modal +v162: Latest events gets enough vertical room for live runs +v164 — premium agent timeline +v165 — visual polish + timeline failure correctness +v172: calmer, premium Model pre-scan card +v179: calmer pre-scan surface +v183: Eval Archive moved to the observability column under Run Stats +v189.4 +v194 — Build-first Runs Explorer polish +v194 — Build-first compatibility cleanup +v194 — Delete cascade clarity +v194 — Effective eval and linked validation provenance +v190.1 — Space Test validation projection +Space Test validation card final polish +.timeline:not(.timeline-canonical) .step{display:none!important;} +.eval-archive-grid{display:none!important;} +v194 — Space Test Validation reliability +v194 — Eval archive run-scoped reset and stable key/value layout +v190.10 — Active Run timeline hotfix +v192.11: robust pre-scan layout guards +v194 — Center workspace and deletion modal loading feedback +@media (max-width: 1180px) +v56 feedback motion +v74: grouped timeline dots +v89: Space Test lives under Active Run +v90: Pi/provider model mismatch warning +v92: robust 3-column layout +.workspace-grid > .runs-explorer-panel +.center-stack > .space-test-panel +v103: aggregated run stats +conic-gradient(from -90deg +.center-stack.is-run-loading > .center-tabs +.center-stack.is-run-loading > .center-tab-panel.active +*/ +/* v162: Latest events gets enough vertical room for live runs */ +/* .latest-events-card .activity-feed max-height:354px overflow-y:auto overscroll-behavior:contain .latest-events-card .activity-feed.show-all */ +/* .prescan-meta{ + display:grid!important; */ +/* .validation-result-card .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr));} */ +/* .run-eval-archive-card[hidden]{display:none!important;} */ +/* v190.10 — Active Run timeline hotfix */ +/* grid-template-columns:minmax(0, 1fr) auto */ +/* @media (max-width: 720px) */ +/* workspace-grid > .space-test-panel */ +/* v183: Eval Archive moved to the observability column under Run Stats */