/* Agentic Automation Testing System · Playwright Studio — UI styles (ported from the Claude Design handoff) */
:root{
  --teal:#0d9488; --teal-d:#0f766e; --teal-dd:#0f2e2b;
  --ink:#0f172a; --slate:#1e293b; --muted:#64748b; --faint:#94a3b8;
  --line:#e6eaee; --line2:#eef2f5; --bg:#eef1f3; --card:#fff;
  --violet:#7c3aed; --green:#16a34a; --green-d:#15803d; --red:#dc2626; --amber:#d97706;
  --radius:16px;
  /* A 14px control becomes 16px visually: the requested system-wide +2px
     content increase also scales controls, spacing and icons consistently. */
  --ui-content-scale:1.142857;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;zoom:var(--ui-content-scale)}
.mono{font-family:'JetBrains Mono',monospace}
@keyframes pwspin{to{transform:rotate(360deg)}}
@keyframes pwpulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes pwring{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(2.4);opacity:0}}
@keyframes pwfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}

/* APP BAR */
.appbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:30}
.brand{display:flex;align-items:center;gap:11px}
.brand-logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#0f766e,#0d9488);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(15,118,110,.35)}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-size:15px;font-weight:800;letter-spacing:-.2px}
.brand-sub{font-size:10.5px;font-weight:600;color:var(--faint);letter-spacing:.3px}
.appbar-right{display:flex;align-items:center;gap:14px}
.module-chip{display:flex;align-items:center;gap:8px;background:#f1f5f7;border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-size:12px;font-weight:500;color:#334155}
.module-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--teal)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--teal-d);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.tester-identity{display:flex;align-items:center;gap:9px}
.tester-name{font-size:12px;font-weight:700;color:#334155;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout-button{border:1px solid #dbe2e7;background:#fff;color:#475569;border-radius:8px;padding:6px 9px;font:700 11px 'Plus Jakarta Sans',system-ui,sans-serif;cursor:pointer}
.logout-button:hover{background:#f8fafc;color:#0f766e}

/* Platform authentication is intentionally separate from credentials for the
   application under test. Static assets stay visible; workflow navigation is
   hidden until the Tester has an authenticated HttpOnly-cookie session. */
body.auth-screen .stepper-wrap{display:none}
body.auth-screen .module-chip{display:none}
body.auth-screen #main{min-height:calc(100vh / var(--ui-content-scale) - 58px);padding:48px 24px;display:flex;align-items:center;justify-content:center}
.auth-shell{width:min(100%,460px);animation:pwfade .2s ease-out}
.auth-intro{text-align:center;margin-bottom:18px}
.auth-intro h1{margin:0 0 7px;font-size:25px;letter-spacing:-.5px}
.auth-intro p{margin:0;color:#64748b;font-size:13px;line-height:1.55}
.auth-card{padding:24px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef2f5;border-radius:10px;padding:4px;margin-bottom:20px}
.auth-tab{border:0;background:transparent;border-radius:7px;padding:8px;font:750 12px 'Plus Jakarta Sans',system-ui,sans-serif;color:#64748b;cursor:pointer}
.auth-tab.active{background:#fff;color:#0f766e;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.auth-field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.auth-field label{font-size:10.5px;font-weight:800;color:#64748b;letter-spacing:.35px;text-transform:uppercase}
.auth-field input{width:100%;border:1px solid #dbe2e7;border-radius:9px;padding:10px 11px;font:13px 'Plus Jakarta Sans',system-ui,sans-serif;outline:none}
.auth-field input:focus{border-color:#0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.auth-submit{width:100%;margin-top:5px;padding:11px 16px}
.auth-error{margin:0 0 13px;padding:9px 10px;border:1px solid #fecaca;border-radius:8px;background:#fff6f5;color:#b91c1c;font-size:11.5px;line-height:1.45}
.auth-note{margin-top:13px;color:#94a3b8;font-size:10.5px;line-height:1.5;text-align:center}

/* STEPPER */
.stepper-wrap{background:#fff;border-bottom:1px solid var(--line);padding:18px 24px}
.stepper{width:100%;margin:0;display:flex;align-items:center}
.step{display:flex;align-items:center;gap:11px;cursor:pointer;user-select:none}
.step.locked{cursor:default;opacity:.5}
.step .circle{width:34px;height:34px;border-radius:50%;border:2px solid #cbd5e1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#94a3b8;background:#fff;transition:.2s}
.step.done .circle{background:var(--teal);border-color:var(--teal);color:#fff}
.step.active .circle{border-color:var(--teal);color:var(--teal-d)}
.step .lbl{font-size:13.5px;white-space:nowrap;color:#94a3b8;font-weight:600}
.step.active .lbl,.step.done .lbl{color:var(--slate);font-weight:700}
.step-conn{flex:1;height:2px;margin:0 14px;border-radius:2px;background:#e2e8f0;transition:.3s}
.step-conn.done{background:var(--teal)}

/* LAYOUT — scope this to our page container. Monaco's autocomplete rows also
   contain an internal `.main`; styling that class globally pushes suggestion
   text outside its row and leaves a blank-looking popup. */
#main{flex:1;width:100%;margin:0;padding:30px 24px 60px}
.screen-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:16px}
.screen-head h1{margin:0 0 4px;font-size:23px;font-weight:800;letter-spacing:-.4px}
.screen-head p{margin:0;font-size:14px;color:var(--muted)}
.review-screen-head{align-items:flex-start}.review-continue-button{display:inline-flex;align-items:center;gap:6px;flex:none;padding:10px 18px;font-size:13px}
.row-gap{display:flex;gap:10px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover{background:var(--teal-d)}
.btn-ghost{background:#fff;border:1px solid #dbe2e7;color:#475569}
.btn-ghost:hover{background:#f1f5f7}
.btn-icon{width:38px;height:38px;flex:none;padding:0}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* CARDS */
.card{background:var(--card);border:1px solid #e3e8ec;border-radius:var(--radius);box-shadow:0 1px 2px rgba(15,23,42,.04)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mod-card{padding:18px;display:flex;flex-direction:column;gap:14px}
.mod-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.mod-id{display:flex;align-items:center;gap:10px}
.mod-icon{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.mod-name{font-size:13px;font-weight:600;letter-spacing:-.3px}
.mod-flows{font-size:12px;color:var(--faint);margin-top:2px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;white-space:nowrap}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.acct{display:inline-flex;align-items:center;font-weight:700;font-size:11px;padding:3px 8px;border-radius:6px}
.mod-meta{display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:#475569}
.mod-meta .line{display:flex;align-items:center;gap:8px}
.hr{height:1px;background:var(--line2)}
.mod-actions{display:flex;align-items:center;gap:8px}

/* TABS */
.tabs{display:flex;gap:4px;background:#e8edf0;padding:4px;border-radius:12px;width:max-content;margin-bottom:18px}
.tab{display:flex;align-items:center;gap:7px;border:none;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;background:transparent;color:#64748b;transition:.15s}
.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(15,23,42,.12)}
.failure-data-cell{min-width:0;word-break:break-word;font-size:11px;line-height:1.5;color:#334155;background:transparent;overflow:visible}
.failure-id-cell{font-weight:800;color:#dc2626}
.failure-cell-pre{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit;color:inherit}
.failure-test-data-stage{margin-bottom:8px;padding:6px 8px;border-radius:7px;background:#eef6ff;color:#475569;font-size:10.5px}
.failure-test-data-stage b{color:#075985}
.failure-test-data-section{padding:8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.failure-test-data-section+.failure-test-data-section{margin-top:8px}
.failure-test-data-title{color:#0f766e;font-size:10px;font-weight:850;letter-spacing:.3px;text-transform:uppercase}
.failure-test-data-note{margin-top:3px;color:#64748b;font-size:9.5px;line-height:1.4}
.failure-test-data-list{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.failure-test-data-item{display:grid;grid-template-columns:minmax(86px,.75fr) minmax(0,1.25fr);gap:7px;padding-top:5px;border-top:1px solid #f1f5f9}
.failure-test-data-item:first-child{padding-top:0;border-top:0}
.failure-test-data-item b{color:#475569;font-size:10px}
.failure-test-data-item span{white-space:pre-wrap;overflow-wrap:anywhere;color:#1e293b;font:10px/1.45 'JetBrains Mono',Consolas,monospace}
.failure-test-data-empty{padding:8px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;font-size:10.5px}
.failure-actual-error{margin-top:12px;padding:10px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;display:flex;flex-direction:column;gap:5px;color:#7f1d1d;font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.failure-actual-error b{font-size:10px;text-transform:uppercase;letter-spacing:.35px}
.failure-actual-error span{font-size:11.5px;line-height:1.45}
.failure-actual-error code{font-family:'JetBrains Mono',Consolas,monospace;font-size:10.5px;color:#991b1b;white-space:pre-wrap}
.failure-request-method{display:inline-flex;padding:3px 7px;border-radius:6px;background:#e0f2fe;color:#075985;font:800 10px 'JetBrains Mono',Consolas,monospace;margin-bottom:7px}
.failure-request-url{font-size:10.5px;line-height:1.5;overflow-wrap:anywhere;color:#1e293b}
.failure-query-params{margin-top:7px;border:1px solid #dbe2e7;border-radius:7px;background:#fff;overflow:hidden}
.failure-query-params>summary{cursor:pointer;list-style:none;padding:7px 8px;background:#f8fafc;color:#0f766e;font:750 10px 'Plus Jakarta Sans',system-ui,sans-serif}
.failure-query-params>summary::-webkit-details-marker{display:none}
.failure-query-params>summary::before{content:'›';display:inline-block;margin-right:6px;transition:transform .12s}
.failure-query-params[open]>summary::before{transform:rotate(90deg)}
.failure-query-params>pre{margin:0;padding:8px;border-top:1px solid #e2e8f0;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;font:9.5px/1.45 'JetBrains Mono',Consolas,monospace;color:#334155}
.failure-confidence{display:inline-flex;margin-top:9px;padding:3px 7px;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.25px;background:#f1f5f9;color:#64748b}
.failure-confidence.high{background:#dcfce7;color:#15803d}.failure-confidence.medium{background:#fef3c7;color:#92400e}
.failure-selection-reason{margin-top:6px;color:#64748b;font-size:10.5px;line-height:1.45}
.failure-no-match{display:flex;flex-direction:column;gap:5px;color:#64748b;font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.failure-no-match b{color:#334155}.failure-no-match span{font-size:10.5px;line-height:1.45}
.failure-response-summary{display:flex;flex-direction:column;gap:7px;font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.failure-response-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:9px;align-items:start}
.failure-response-item b{font-size:10px;text-transform:uppercase;letter-spacing:.25px;color:#64748b}
.failure-response-item span{font-size:11.5px;color:#1e293b;white-space:pre-wrap;overflow-wrap:anywhere}
.failure-response-empty{color:#64748b;font-size:11px;line-height:1.45}
.failure-raw-response,.failure-other-traffic,.failure-network-record{border:1px solid #dbe2e7;border-radius:8px;background:#fff;overflow:hidden}
.failure-raw-response{margin-top:3px}.failure-other-traffic{margin-top:3px}
.failure-raw-response>summary,.failure-other-traffic>summary,.failure-network-record>summary{cursor:pointer;list-style:none;font-weight:750;color:#0f766e}
.failure-raw-response>summary::-webkit-details-marker,.failure-other-traffic>summary::-webkit-details-marker,.failure-network-record>summary::-webkit-details-marker{display:none}
.failure-raw-response>summary,.failure-other-traffic>summary{padding:8px 10px;font-size:10.5px;background:#f8fafc}
.failure-raw-response>summary::before,.failure-other-traffic>summary::before,.failure-network-record>summary::before{content:'›';display:inline-block;margin-right:6px;transition:transform .12s}
.failure-raw-response[open]>summary::before,.failure-other-traffic[open]>summary::before,.failure-network-record[open]>summary::before{transform:rotate(90deg)}
.failure-raw-response>pre{margin:0;padding:10px;border-top:1px solid #e2e8f0;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;font:10.5px/1.5 'JetBrains Mono',Consolas,monospace;color:#334155}
.failure-other-list{padding:7px;display:flex;flex-direction:column;gap:6px;border-top:1px solid #e2e8f0;background:#f8fafc}
.failure-network-record>summary{padding:7px 9px;display:flex;justify-content:space-between;gap:10px;font-size:9.5px;background:#fff;color:#475569}
.failure-network-record>summary .mono{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.failure-network-record>summary>span:last-child{flex:none;color:#64748b}
.failure-network-record-body{padding:9px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:6px}
.failure-network-record-body b{font-size:9.5px;color:#64748b;text-transform:uppercase}
.failure-network-record-body pre{margin:0 0 5px;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;font:10px/1.45 'JetBrains Mono',Consolas,monospace;color:#334155}

/* CODE / SCRIPT */
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line2);background:#fbfcfd;font-family:'JetBrains Mono',monospace;font-size:12.5px;color:#475569}

/* TABLES — test cases + RTM (Review & Report screens).
   Ruled in solid black: the previous near-white lines (#eef2f5/#f1f5f8) made
   the grid unreadable, and there were no column separators at all. */
.tbl-head,.tbl-row{display:grid;gap:0;font-size:12.5px}
.tbl-head{background:#f1f5f7;border-bottom:2px solid #000;font-size:11px;font-weight:800;color:var(--ink);letter-spacing:.4px;text-transform:uppercase}
.tbl-head>*,.tbl-row>*{padding:13px 14px;border-right:1px solid #000}
.tbl-head>*:last-child,.tbl-row>*:last-child{border-right:none}
/* align-items MUST stay `stretch`: any flex-start/center shrinks each cell to its
   own content height, so its border-right stops early and the column rules come
   out broken. Cells span the full row; content is aligned INSIDE the cell below. */
.tbl-row{border-bottom:1px solid #000;align-items:stretch}
.tbl-row:last-child{border-bottom:none}
/* Vertically-centred variant (RTM report rows) — centres the cell CONTENT while
   the cell itself still spans the full row height, so the rules stay unbroken. */
.tbl-row-mid>div{display:flex;align-items:center}
/* Black outer frame on the card that wraps a ruled table (clip so the inner
   black lines don't overshoot the card's rounded corners). */
.card:has(> .tbl-head){border:1px solid #000;overflow:hidden}
/* Selective rerun (Report > Test Cases): a row whose Status/Actual Result just
   changed from a rerun — subtle, distinct from the pass/fail rail colors on
   .rep-card. Cleared on the next report reload (nothing persists this flag). */
.row-just-reran{background:#fffbeb}
.row-just-reran:hover{background:#fef3c7}
/* Rerun-failed preview: the rows that WILL be rerun (failed + their auto-included
   dependencies), floated to the top of the table and tinted so they stand apart
   from the rest of the suite shown, greyed, below them. */
.row-to-rerun{background:#fff6f5;box-shadow:inset 3px 0 0 #dc2626}
/* Rerun-selected mode: the whole row is a click target — hint it on hover. */
.row-selectable:hover{background:#f0fdfa}
/* Sortable Status/Type column headers in Rerun-selected mode. */
.tbl-head [data-sort]:hover{color:#0f766e}
.report-case-table{overflow-x:auto!important}
.report-case-grid{min-width:max-content}
.rtm-table-card{overflow-x:auto!important}
.rtm-grid{min-width:max-content}
.report-case-row{min-height:116px}
.report-case-row.editing{min-height:146px}
.report-case-row>*{box-sizing:border-box;min-width:0;overflow:visible}
.report-case-id{white-space:normal;overflow:visible!important;overflow-wrap:anywhere}
.report-case-copy,.report-case-remark{overflow:visible!important}
.report-case-scroll{box-sizing:border-box;width:100%;height:auto;max-height:none;overflow:visible;overflow-wrap:anywhere;word-break:normal;padding-right:0}
.report-case-datetime{white-space:normal;overflow-wrap:normal;word-break:normal}
.report-case-row .report-failure-evidence.compact{box-sizing:border-box;max-width:100%;margin-top:7px}
.tag{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:#f1f5f8;border:1px solid #e2e8f0;color:#475569}

/* NAME SCREEN */
.name-list{display:flex;flex-direction:column}
.name-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #f1f5f8}
.name-row:last-child{border-bottom:none}
.name-row .num{width:26px;height:26px;flex:none;border-radius:7px;background:#f0fdfa;color:var(--teal-d);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.name-row .proof{font-size:12px;color:var(--muted);font-family:'JetBrains Mono',monospace}
.name-row input{width:100%;border:1px solid #dbe2e7;border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:inherit;color:var(--ink)}
.name-row input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.name-row .proof-hint{font-size:11.5px;color:var(--teal-d);font-family:'JetBrains Mono',monospace;word-break:break-word}

/* RECORD */
.toolbar{display:flex;justify-content:center;margin-bottom:18px}
.toolbar-inner{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e3e8ec;border-radius:14px;padding:9px 12px;box-shadow:0 10px 28px -8px rgba(15,23,42,.28)}
.toolbar-left{flex-direction:column;padding:9px;position:sticky;top:78px}
.step-del{flex:none;align-self:center;width:22px;height:22px;border:none;background:none;color:#cbd5e1;cursor:pointer;border-radius:6px;font-size:12px;display:flex;align-items:center;justify-content:center;transition:.12s}
.step-del:hover{color:#dc2626;background:#fee2e2}
.tool{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:none;border-radius:10px;cursor:pointer;background:#f1f5f9;color:#475569}
.tool.rec{background:#fef2f2;color:#ef4444}
.tool.custom{width:auto;gap:7px;padding:0 12px;border:1.5px solid #ddd6fe;background:#f5f3ff;color:var(--violet);font-weight:700;font-size:13px}
.browser{overflow:hidden;display:flex;flex-direction:column}
.browser-chrome{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line2);background:#fbfcfd}
.dots{display:flex;gap:6px}.dots span{width:11px;height:11px;border-radius:50%}
.urlbar{flex:1;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 11px;font-family:'JetBrains Mono',monospace;font-size:12px;color:#475569}
.recpill{display:flex;align-items:center;gap:6px;background:#fef2f2;border:1px solid #fecaca;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:800;color:#dc2626;letter-spacing:.4px}
.recpill .live{position:relative;display:flex}
.recpill .live::before{content:'';position:absolute;inset:0;border-radius:50%;background:#ef4444;animation:pwring 1.6s infinite}
.recpill .live i{width:8px;height:8px;border-radius:50%;background:#ef4444;position:relative;display:block}

/* EXECUTE */
.progress{height:8px;background:var(--line2);border-radius:8px;overflow:hidden}
.progress>div{height:100%;border-radius:8px;background:linear-gradient(90deg,#0d9488,#14b8a6);transition:width .2s linear}
.exec-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #f1f5f8}
.exec-row .ico{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center}
.spin{animation:pwspin .8s linear infinite}
.log{background:#0f172a;border-radius:14px;overflow:hidden}
.log-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;border-bottom:1px solid #1e293b;color:#e2e8f0;font-size:12.5px;font-weight:700}
.log-body{padding:14px 16px;font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.85;max-height:480px;overflow:auto}
.log-body .ln{display:flex;gap:12px;color:#94a3b8}

/* REPORT */
.report-summary{margin-bottom:20px}
.chips{display:flex;gap:14px}
.report-summary-main{margin-bottom:0}
.chip{flex:1;display:flex;align-items:center;gap:14px;padding:16px 18px}
.chip .ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.chip .big{font-size:26px;font-weight:800;line-height:1}
.chip .cap{font-size:12.5px;color:var(--muted);font-weight:600}
.report-detail-toggle{display:inline-flex;align-items:center;gap:3px;margin:3px 0 0;padding:0;border:0;background:none;color:#dc2626;font:700 10.5px/1.2 inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.report-detail-toggle:hover{color:#991b1b}
.report-detail-toggle:focus-visible{outline:2px solid #dc2626;outline-offset:3px;border-radius:2px}
.report-detail-arrow{flex:none;color:#475569;transition:transform .15s ease}
.report-detail-toggle[aria-expanded="true"] .report-detail-arrow{transform:rotate(180deg)}
.report-error-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:transparent}
.report-error-details.hidden{display:none}
.report-detail-chip{min-width:0;box-shadow:none}
.rep-card{border-left:4px solid #cbd5e1;padding:16px 18px;display:flex;gap:18px}
.rep-card.pass{border-left-color:var(--green)}
.rep-card.pass-with-cleanup-warning{border-left-color:#d97706}
.rep-card.pass-after-retry{border-left-color:#0f766e}
.rep-card.product-failure{border-left-color:var(--red)}
.rep-card.automation-error{border-left-color:#7c3aed}
.rep-card.environment-error{border-left-color:#0369a1}
.rep-card.not-tested{border-left-color:var(--faint)}
.rep-meta{flex:1;min-width:0}
.rep-title{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.err{margin-top:10px;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:11px 13px;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:#b91c1c;line-height:1.5}
.report-failure-evidence{margin-top:9px;padding:10px 12px;border:1px solid #fecaca;border-radius:9px;background:#fff7f7;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7f1d1d;font-size:11.5px;line-height:1.45}
.report-failure-evidence>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.report-failure-evidence code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'JetBrains Mono',monospace;color:#991b1b}
.script-line-link{border:0;background:none;padding:0 3px;color:#0f766e;font:700 11px inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.report-failure-evidence .script-line-link{flex:none}
.report-failure-evidence.compact{padding:7px 8px;align-items:flex-start;flex-direction:column;gap:4px}
.report-failure-evidence.compact code{max-width:230px}
.report-failure-no-code{color:#9f1239}
.report-failure-unavailable{max-width:210px;color:#9f1239;font-size:10.5px;font-weight:650;line-height:1.35}

@media(max-width:1100px){
  .report-summary-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-summary-main .chip:last-child{grid-column:span 2}
  .report-error-details{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .report-summary-main,.report-error-details{grid-template-columns:1fr}
  .report-summary-main .chip:last-child{grid-column:auto}
}

/* MISC */
.empty{padding:40px;text-align:center;color:var(--faint);font-size:14px}
.spacer{flex:1}
.note{font-size:12.5px;color:var(--muted);background:#f8fafc;border:1px dashed #e2e8f0;border-radius:10px;padding:12px 14px;line-height:1.5}

/* Define > document scope analysis */
.define-module-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:end;margin-bottom:20px}
.define-account-picker{display:flex;flex-direction:column;gap:5px;font-size:10.5px;font-weight:800;color:#64748b;letter-spacing:.3px}
.define-account-picker select{width:100%;border:1px solid #dbe2e7;border-radius:9px;padding:11px 12px;background:#fff;font:14px inherit;cursor:pointer}
.define-navigation-card{margin:-8px 0 20px;border:1px solid #dbe2e7;border-radius:10px;background:#f8fafc;padding:11px 13px}.define-navigation-card.editing{background:#fff}
.define-navigation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.define-navigation-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.define-navigation-head b{color:#334155;font-size:10.5px;letter-spacing:.35px}.define-navigation-head small{color:#94a3b8;font-size:10.5px;line-height:1.4}.define-navigation-head button{flex:none;border:0;background:transparent;color:#0f766e;padding:1px 0;font:800 11.5px inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.define-navigation-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:10px 0 0}.define-navigation-values>div{min-width:0}.define-navigation-values dt{margin-bottom:3px;color:#64748b;font-size:9.5px;font-weight:800;text-transform:uppercase}.define-navigation-values dd{margin:0;overflow-wrap:anywhere;color:#334155;font-size:11.5px}.define-navigation-values dd span{color:#94a3b8;font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.define-navigation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:12px}.define-navigation-form label{display:flex;min-width:0;flex-direction:column;gap:5px}.define-navigation-form label span{color:#64748b;font-size:9.5px;font-weight:800;letter-spacing:.25px}.define-navigation-form input{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px;color:#1e293b;font:12px 'JetBrains Mono',monospace}.define-navigation-help{grid-column:1/-1;color:#94a3b8;font-size:10.5px;line-height:1.45}.define-navigation-help .mono{color:#64748b}.define-navigation-form #moduleNavigationErr{grid-column:1/-1;border:1px solid #fecaca;border-radius:7px;background:#fff1f2;padding:8px 10px;color:#b91c1c;font-size:11.5px}.define-navigation-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.define-navigation-actions .btn{padding:8px 13px;font-size:11.5px}
.requirement-analysis-status{margin-top:12px;min-height:44px;border:1px solid #dbe2e7;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:9px;background:#f8fafc;color:#475569;font-size:12px;font-weight:650}
.requirement-analysis-status>span:nth-of-type(2),.requirement-analysis-status>span:first-child:not(.analysis-status-dot){flex:1}
.requirement-analysis-status button{margin-left:auto;border:0;background:transparent;color:#0f766e;font:800 12px inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.requirement-analysis-status.processing{background:#fffbeb;border-color:#fde68a;color:#92400e}.requirement-analysis-status.ready{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.requirement-analysis-status.approved{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.requirement-analysis-status.failed{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.requirement-analysis-status.stale{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.analysis-status-dot{width:14px;height:14px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}
.technical-discovery-card{margin:0 0 20px;border:1px solid #dbe2e7;border-radius:10px;background:#f8fafc;overflow:visible;color:#475569}
.technical-discovery-head{min-height:50px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px}.technical-discovery-head>div{min-width:0;display:flex;align-items:center;gap:12px}.technical-discovery-head b{color:#1e293b;font-size:12.5px;white-space:nowrap}.technical-discovery-state{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700}.technical-discovery-state i{width:9px;height:9px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px #e2e8f0}.technical-discovery-head button{flex:none;border:0;background:transparent;color:#0f766e;padding:5px 0;font:800 11.5px inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.technical-discovery-head .technical-discovery-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.technical-discovery-head .technical-discovery-actions [data-act="discoveryRun"]{border:1px solid #0f9b8e;border-radius:8px;background:#0f9b8e;color:#fff;padding:7px 11px;text-decoration:none}.technical-discovery-head .technical-discovery-actions [data-act="discoveryRun"]:disabled{cursor:wait;opacity:.65}.technical-discovery-card.status-not-started,.technical-discovery-card.status-stale{border-color:#bae6fd;background:#f0f9ff}.technical-discovery-card.status-not-started .technical-discovery-state i,.technical-discovery-card.status-stale .technical-discovery-state i{background:#0284c7;box-shadow:0 0 0 3px #e0f2fe}
.technical-discovery-card.status-queued .technical-discovery-state i,.technical-discovery-card.status-waiting-requirements .technical-discovery-state i{background:#d97706;box-shadow:0 0 0 3px #fef3c7}.technical-discovery-card.status-baseline-running .technical-discovery-state i,.technical-discovery-card.status-targeted-running .technical-discovery-state i,.technical-discovery-card.status-cleaning .technical-discovery-state i{background:#2563eb;box-shadow:0 0 0 3px #dbeafe;animation:pwpulse 1.25s ease-in-out infinite}.technical-discovery-card.status-ready{border-color:#bbf7d0;background:#f0fdf4}.technical-discovery-card.status-ready .technical-discovery-state i{background:#16a34a;box-shadow:0 0 0 3px #dcfce7}.technical-discovery-card.status-partial{border-color:#fde68a;background:#fffbeb}.technical-discovery-card.status-partial .technical-discovery-state i{background:#ca8a04;box-shadow:0 0 0 3px #fef9c3}.technical-discovery-card.status-blocked,.technical-discovery-card.status-failed{border-color:#fecdd3;background:#fff1f2}.technical-discovery-card.status-blocked .technical-discovery-state i,.technical-discovery-card.status-failed .technical-discovery-state i{background:#dc2626;box-shadow:0 0 0 3px #fee2e2}
.technical-discovery-details{padding:14px;border-top:1px solid #dbe2e7;border-radius:0 0 9px 9px;background:#fff;color:#475569;font-size:11.5px;line-height:1.5}.technical-discovery-details>p{margin:0 0 12px;color:#334155}.technical-discovery-details>small{display:block;margin-top:11px;color:#94a3b8}.technical-discovery-top-action{position:sticky;top:66px;z-index:12;display:flex;justify-content:flex-end;min-height:34px;margin:-4px 0 6px;pointer-events:none}.technical-discovery-top-action .btn{pointer-events:auto;padding:7px 10px;border-color:#cbd5e1;background:#fff;color:#0f766e;box-shadow:0 2px 7px rgba(15,23,42,.12)}.technical-discovery-loading{display:flex;align-items:center;gap:9px;color:#64748b}.technical-discovery-phase-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}.technical-discovery-phase-row p{margin:0;color:#334155}.technical-discovery-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.technical-discovery-counts>div{display:flex;flex-direction:column;gap:1px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:8px 10px}.technical-discovery-counts b{color:#0f172a;font-size:16px}.technical-discovery-counts span{color:#64748b;font-size:9.5px;font-weight:700}.technical-discovery-details section{margin-top:10px;border-top:1px solid #eef2f6;padding-top:9px}.technical-discovery-details h3{margin:0 0 5px;color:#334155;font-size:10px;text-transform:uppercase;letter-spacing:.35px}.technical-discovery-details ul{margin:0;padding-left:18px}.technical-discovery-details li+li{margin-top:3px}.technical-discovery-details dl{margin:0}.technical-discovery-details dl>div{display:grid;grid-template-columns:minmax(110px,.4fr) minmax(0,1fr);gap:10px;padding:3px 0}.technical-discovery-details dt{color:#64748b;text-transform:capitalize}.technical-discovery-details dd{margin:0;color:#334155;overflow-wrap:anywhere}.technical-discovery-empty{color:#94a3b8}.technical-discovery-error{border:1px solid #fecaca;border-radius:7px;background:#fff1f2;padding:8px 10px;color:#9f1239}.technical-discovery-retry{margin:0 2px 0 auto;padding:7px 11px!important;border:1px solid #cbd5e1!important;background:#fff!important;color:#0f766e!important;font-size:11px!important}
.technical-discovery-details .technical-discovery-blockers{margin:12px 0 14px;border:1px solid #fda4af;border-radius:10px;background:#fff7f7;padding:0;overflow:hidden}.technical-discovery-blockers-head{padding:11px 13px;border-bottom:1px solid #fecdd3;background:#fff1f2}.technical-discovery-blockers-head b{color:#9f1239;font-size:12.5px}.technical-discovery-blockers-head p{margin:3px 0 0;color:#881337;font-size:10.5px;line-height:1.45}.technical-discovery-blockers ol{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.technical-discovery-blockers li{display:flex;align-items:center;gap:12px;margin:0!important;padding:10px 12px;border-top:1px solid #ffe4e6}.technical-discovery-blockers li:first-child{border-top:0}.technical-discovery-blocker-content{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}.technical-discovery-blocker-content strong{color:#9f1239;font-family:'JetBrains Mono',monospace;font-size:10.5px}.technical-discovery-blocker-content span{color:#334155}.technical-discovery-blocker-content small{color:#64748b;font-size:10px}.technical-discovery-blocker-content small b{color:#475569}.technical-discovery-blockers .btn{flex:none;padding:7px 10px;background:#fff;color:#9f1239}
.technical-discovery-details .technical-discovery-record-section{margin-top:12px}.technical-discovery-record-section>div{display:flex;flex-direction:column;gap:7px}.technical-discovery-record{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:9px 11px}.technical-discovery-record h4{margin:0 0 6px;color:#475569;font-size:10.5px}.technical-discovery-record dl>div{border-top:1px solid #edf2f7}.technical-discovery-record dl>div:first-child{border-top:0}.technical-discovery-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;border-top:1px solid #e2e8f0;padding-top:11px}.technical-discovery-pagination>span{color:#64748b;font-size:10.5px}.technical-discovery-pagination>.btn{margin-left:auto;padding:7px 10px;background:#fff;color:#0f766e}
.define-analysis-page{animation:pwfade .18s ease-out}.analysis-page-nav{margin-bottom:16px}.analysis-page-nav .btn{padding:8px 13px}
.analysis-documents{padding:15px 17px;margin-bottom:14px}.analysis-documents h2,.analysis-progress-card h2{margin:0 0 11px;font-size:13px}.analysis-documents>div{display:flex;flex-wrap:wrap;gap:8px}.analysis-document{display:flex;align-items:center;gap:8px;border:1px solid #dbe2e7;border-radius:8px;background:#f8fafc;padding:7px 10px;color:#334155;font-size:11.5px}.analysis-document small{color:#94a3b8}
.analysis-progress-card{padding:20px 22px}.analysis-stage-list{display:flex;flex-direction:column;gap:5px}.analysis-stage{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;color:#94a3b8;font-size:13px;font-weight:650}.analysis-stage.done{color:#15803d;background:#f0fdf4}.analysis-stage.processing{color:#92400e;background:#fffbeb}.analysis-stage.failed{color:#b91c1c;background:#fff1f2}.analysis-stage-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex:none;border:2px solid currentColor;border-radius:50%;font-size:11px;font-weight:900}.analysis-stage.processing .analysis-stage-icon{border-right-color:transparent;font-size:0}.analysis-progress-card>p{margin:14px 0 0;color:#64748b;font-size:11.5px}
.analysis-summary-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.analysis-summary-tab{border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#475569;padding:8px 11px;font:750 12px inherit;cursor:pointer}.analysis-summary-tab b{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;margin-left:5px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:10px}.analysis-summary-tab.active{background:#ecfdf5;border-color:#0f766e;color:#0f766e}.analysis-summary-tab.active b{background:#0f766e;color:#fff}
.analysis-ready-head{align-items:flex-start}.analysis-scope-guide{width:min(530px,52vw);border:1px solid #dbe2e7;border-radius:10px;background:#fff;padding:10px 13px;box-shadow:0 1px 2px rgba(15,23,42,.03)}.analysis-scope-guide h2{margin:0 0 5px;color:#0f172a;font-size:11px}.analysis-scope-guide>div{display:grid;grid-template-columns:90px 1fr;gap:7px;padding:2px 0;color:#64748b;font-size:10.5px;line-height:1.35}.analysis-scope-guide b{color:#334155}.analysis-scope-guide span{min-width:0}
.analysis-table-card{overflow:hidden}.analysis-table-wrap{overflow:visible;max-height:none}.analysis-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:0;background:#fff;font-size:11.5px}.analysis-table th,.analysis-table td{padding:11px 12px;border-right:1px solid #dbe2e7;border-bottom:1px solid #dbe2e7;text-align:left;vertical-align:top;line-height:1.45;overflow-wrap:anywhere}.analysis-table th:last-child,.analysis-table td:last-child{border-right:0}.analysis-table tbody tr:last-child td{border-bottom:0}.analysis-table th{position:sticky;top:0;z-index:2;background:#e8edf0;color:#1e293b;font-size:10px;text-transform:uppercase;letter-spacing:.35px}.analysis-table th:nth-child(1){width:8%}.analysis-table th:nth-child(2){width:21%}.analysis-table th:nth-child(3){width:15%}.analysis-table th:nth-child(4){width:10%}.analysis-table th:nth-child(5){width:25%}.analysis-table th:nth-child(6){width:11%}.analysis-table th:nth-child(7){width:10%}.analysis-table td small{display:block;margin-top:4px;color:#64748b;font-size:10px}.analysis-table select{width:100%;border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:7px 8px;color:#334155;font:700 11px inherit}.analysis-actor{display:inline-flex;border-radius:999px;padding:3px 8px;background:#e0f2fe;color:#075985;font-size:10px;font-weight:800;text-transform:capitalize}.analysis-required-sessions{margin-top:8px!important;border-left:2px solid #f59e0b;padding-left:6px;color:#92400e!important;line-height:1.4}.analysis-empty{text-align:center!important;color:#94a3b8;padding:28px!important}.analysis-decision-note{margin-top:12px;background:#fffbeb;border-style:solid;border-color:#fde68a;color:#92400e}.analysis-failure{margin-top:12px;background:#fff1f2;border-style:solid;border-color:#fecdd3;color:#9f1239}.analysis-failure.structured{padding:0;border:0;background:transparent}.analysis-multi-session-warning{margin-top:12px;overflow:hidden;border:1px solid #fda4af;border-radius:11px;background:#fff7f7;color:#881337}.analysis-multi-session-head{padding:12px 15px;border-bottom:1px solid #fecdd3;background:#fff1f2}.analysis-multi-session-head b{font-size:13px}.analysis-multi-session-head p{margin:4px 0 0;color:#9f1239;font-size:11.5px;line-height:1.5}.analysis-multi-session-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.analysis-multi-session-list li{display:flex;align-items:center;gap:14px;padding:11px 14px;border-top:1px solid #ffe4e6}.analysis-multi-session-list li:first-child{border-top:0}.analysis-multi-session-content{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.analysis-multi-session-content>div{display:flex;align-items:flex-start;gap:8px}.analysis-multi-session-content strong{flex:none;color:#9f1239}.analysis-multi-session-content span{color:#334155;line-height:1.45}.analysis-multi-session-content small{color:#64748b;font-size:10.5px;line-height:1.4}.analysis-multi-session-content small b{color:#475569}.analysis-multi-session-list .btn{flex:none;padding:7px 10px;background:#fff}.analysis-focus-row{position:relative;outline:3px solid #f59e0b;outline-offset:-3px;animation:analysis-focus-pulse .75s ease-in-out 2}@keyframes analysis-focus-pulse{50%{outline-color:#e11d48;background:#fff7ed}}
.analysis-page-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.review-scope-banner{display:flex;align-items:center;gap:10px;margin:-4px 0 14px;border:1px solid #99f6e4;border-radius:10px;background:#f0fdfa;padding:9px 12px;color:#115e59;font-size:11.5px}.review-scope-banner span{font-weight:650}.review-scope-banner small{margin-left:auto;color:#64748b;font-family:'JetBrains Mono',monospace;font-size:9.5px}.review-scope-banner.legacy{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.review-scope-banner.stale{border-color:#fecaca;background:#fff1f2;color:#9f1239}
@media(max-width:900px){.analysis-ready-head{align-items:stretch;flex-direction:column}.analysis-scope-guide{width:100%}}
@media(max-width:760px){.define-module-row,.define-navigation-form,.define-navigation-values{grid-template-columns:1fr}.define-navigation-head{align-items:flex-start}.requirement-analysis-status{align-items:flex-start;flex-wrap:wrap}.requirement-analysis-status button{margin-left:0}.technical-discovery-head,.technical-discovery-head>div{align-items:flex-start;flex-direction:column}.technical-discovery-head button{align-self:flex-start}.technical-discovery-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.technical-discovery-details dl>div{grid-template-columns:1fr;gap:1px}.technical-discovery-blockers li,.technical-discovery-pagination{align-items:stretch;flex-direction:column}.technical-discovery-blockers .btn{align-self:flex-start}.technical-discovery-pagination>.btn{align-self:flex-start;margin-left:0}.analysis-page-actions{flex-wrap:wrap}.analysis-multi-session-list li,.analysis-multi-session-content>div{align-items:stretch;flex-direction:column}.analysis-multi-session-list .btn{align-self:flex-start}.review-scope-banner{align-items:flex-start;flex-direction:column}.review-scope-banner small{margin-left:0}.review-screen-head{align-items:stretch;flex-direction:column}.review-continue-button{align-self:flex-end}}

/* Review > Test Cases display-only filter/sort controls */
.review-case-controls{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}
.review-case-controls label{display:flex;flex-direction:column;gap:3px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.25px;text-transform:uppercase}
.review-case-controls select{min-width:150px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;padding:7px 9px;font:700 12px 'Plus Jakarta Sans',system-ui,sans-serif;text-transform:none;letter-spacing:0;cursor:pointer}
.review-case-controls small{align-self:center;color:#64748b;font-size:10.5px;font-weight:650;white-space:nowrap}
.script-editor-fallback-shell{display:flex;min-height:540px;flex-direction:column;background:#0f172a}
.script-editor-fallback-shell.light{background:#fff}
.script-editor-fallback-note{flex:none;border-bottom:1px solid #334155;background:#1e293b;padding:8px 14px;color:#cbd5e1;font-size:10.5px;line-height:1.4}
.script-editor-fallback-shell.light .script-editor-fallback-note{border-bottom-color:#dbe2e7;background:#f8fafc;color:#64748b}
.script-editor-fallback{box-sizing:border-box;width:100%;min-height:500px;flex:1;resize:none;border:0;outline:0;background:#0f172a;padding:14px 17px;color:#e2e8f0;font:12.5px/22px 'JetBrains Mono',monospace;tab-size:2;white-space:pre}
.script-editor-fallback-shell.light .script-editor-fallback{background:#fff;color:#1e293b}
.script-editor-fallback:focus{box-shadow:inset 0 0 0 2px #14b8a6}
.compiler-parity-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-5px 0 14px;border:1px solid #99f6e4;border-radius:10px;background:#f0fdfa;padding:10px 12px;color:#115e59}.compiler-parity-banner>div{display:flex;align-items:baseline;gap:10px}.compiler-parity-banner span{font-size:11.5px;line-height:1.45}.compiler-parity-banner small{flex:none;color:#64748b;font:9.5px 'JetBrains Mono',monospace}.compiler-parity-banner.stale{border-color:#fecaca;background:#fff1f2;color:#9f1239}.compiler-parity-banner.stale small{color:#9f1239}
.review-diagnostic-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:9px;margin-bottom:12px}.review-diagnostic-stat{display:flex;align-items:center;justify-content:space-between;border:1px solid #dbe3ea;border-left-width:4px;border-radius:9px;background:#fff;padding:10px 11px}.review-diagnostic-stat span{color:#64748b;font-size:10.5px;font-weight:750}.review-diagnostic-stat b{font-size:17px;color:#0f172a}.review-diagnostic-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.review-diagnostic-group{overflow:hidden}.review-diagnostic-group h3{display:flex;justify-content:space-between;margin:0;padding:11px 14px;border-bottom:1px solid #e2e8f0;font-size:12.5px}.review-diagnostic-group h3 span{min-width:24px;border-radius:20px;background:#f1f5f9;padding:2px 7px;text-align:center;font-size:10px}.review-diagnostic-item{padding:12px 14px;border-top:1px solid #eef2f6}.review-diagnostic-item:first-of-type{border-top:0}.review-diagnostic-item>div{display:flex;align-items:center;gap:8px}.review-diagnostic-item>div span,.review-diagnostic-badge{display:inline-flex;border-radius:20px;background:#fef3c7;color:#92400e;padding:3px 7px;font-size:9.5px;font-weight:800}.review-diagnostic-item p{margin:7px 0 5px;color:#334155;font-size:11.5px;line-height:1.45}.review-diagnostic-item small{display:block;color:#64748b;font-size:10.5px;line-height:1.45}.review-diagnostic-item details{margin-top:7px;color:#64748b;font-size:10px}.review-diagnostic-item details code{margin:5px 7px 0 0;display:inline-block}.review-diagnostic-badge{margin-top:6px}.review-case-diagnostic{margin-top:8px;border-left:3px solid #d97706;border-radius:0 6px 6px 0;background:#fffbeb;padding:7px 9px;color:#78350f;font-size:10.5px;line-height:1.4}.review-case-diagnostic b,.review-case-diagnostic span,.review-case-diagnostic small{display:block}.review-case-diagnostic small{margin-top:4px;color:#92400e}
.category-document-rule{border-left-color:#7c3aed!important}.category-ui-contract{border-left-color:#2563eb!important}.category-fixture{border-left-color:#d97706!important}.category-compiler-generation{border-left-color:#dc2626!important}.category-automation{border-left-color:#ea580c!important}.category-product{border-left-color:#be123c!important}.review-diagnostic-badge.category-document-rule{background:#f3e8ff;color:#6b21a8}.review-diagnostic-badge.category-ui-contract{background:#dbeafe;color:#1d4ed8}.review-diagnostic-badge.category-fixture{background:#fef3c7;color:#92400e}.review-diagnostic-badge.category-compiler-generation{background:#fee2e2;color:#b91c1c}.review-diagnostic-badge.category-automation{background:#ffedd5;color:#c2410c}.review-diagnostic-badge.category-product{background:#ffe4e6;color:#be123c}
@media(max-width:1100px){.review-diagnostic-summary{grid-template-columns:repeat(3,minmax(120px,1fr))}.review-diagnostic-groups{grid-template-columns:1fr}}@media(max-width:700px){.compiler-parity-banner,.compiler-parity-banner>div{align-items:flex-start;flex-direction:column}.review-diagnostic-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* Persistent test data + approved-test lifecycle */
.test-data-toolbar,.lifecycle-report-bar{padding:14px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.test-data-toolbar>div:first-child,.lifecycle-report-bar>div{display:flex;flex-direction:column;gap:3px}.test-data-toolbar span,.lifecycle-report-bar span{font-size:12px;color:#64748b}
.test-data-table-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.test-data-table-tab{display:flex;align-items:center;gap:7px;border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:8px;padding:8px 11px;font:700 12px inherit;cursor:pointer}.test-data-table-tab:hover{border-color:#0f766e;color:#0f766e}.test-data-table-tab.active{background:#ecfdf5;border-color:#0f766e;color:#0f766e}.test-data-table-tab small{font-size:10px;font-weight:700;color:#64748b}.test-data-table-tab.active small{color:#0f766e}
.test-data-grid-wrap{overflow:auto;max-height:430px;border-top:1px solid #000;border-bottom:1px solid #000}
.test-data-grid{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content;font-size:12px;background:#fff}
.test-data-grid th,.test-data-grid td{min-width:180px;max-width:300px;padding:8px;border-right:1px solid #000;border-bottom:1px solid #000;text-align:left;vertical-align:top}
.test-data-grid th{position:sticky;top:0;z-index:2;background:#f1f5f7;text-transform:uppercase;font-size:10.5px;letter-spacing:.35px}.test-data-grid th small{display:block;text-transform:none;font-weight:500;color:#64748b;margin-top:3px;letter-spacing:0}
.test-data-grid tr:last-child td{border-bottom:none}.test-data-grid th:last-child,.test-data-grid td:last-child{min-width:42px;border-right:none}
.test-data-grid .sticky-data-id{position:sticky;left:0;z-index:1;min-width:170px;background:#f8fafc}.test-data-grid th.sticky-data-id{z-index:3;background:#e8edf0}
.test-data-grid input,.test-data-grid select{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:6px;padding:7px 8px;font:12px inherit;background:#fff}.test-data-grid code{font-size:11px;color:#0f766e}
.test-data-case-cell{min-width:225px!important}.test-data-case-label{display:block;color:#1e293b;font-size:12px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.test-data-case-type{display:block;margin-top:7px;min-height:14px;font-size:10.5px;font-weight:800}.test-data-case-type.positive{color:#15803d}.test-data-case-type.negative{color:#dc2626}.test-data-case-type.neutral{color:#64748b}
.test-data-ready-status,.test-data-missing-link,.test-data-contract-status{display:block;margin-top:6px;font-size:10px;line-height:1.2}.test-data-ready-status{color:#15803d}.test-data-missing-link{padding:0;border:0;background:transparent;color:#b45309;font-family:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.test-data-missing-link:hover,.test-data-missing-link:focus-visible{color:#92400e}.test-data-contract-status{font-weight:700;color:#b91c1c}.test-data-contract-status.unresolved_contract{color:#7c3aed}.test-data-focus-row{outline:2px solid #14b8a6;outline-offset:-2px;animation:test-data-focus-pulse .7s ease-in-out 2}@keyframes test-data-focus-pulse{50%{outline-color:#f59e0b;background:#fffbeb}}
.data-cell{min-width:220px!important}.data-cell-mode{display:flex;justify-content:flex-end;margin-bottom:5px}.data-cell-mode select{width:auto;min-width:92px;padding:3px 6px;font-size:10.5px;color:#475569;background:#f8fafc}.data-cell input[readonly]{background:#f8fafc;color:#475569}.data-cell-preview{display:block;margin-top:5px;min-height:13px;color:#64748b;font-size:10px;line-height:1.3;overflow-wrap:anywhere}.data-cell-regenerate{margin-top:6px;border:1px solid #99f6e4;border-radius:5px;background:#f0fdfa;color:#0f766e;padding:4px 7px;font:700 10px inherit;cursor:pointer}.data-cell-regenerate:hover{background:#ccfbf1}
.test-data-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 14px}.icon-btn{border:0;background:#fee2e2;color:#b91c1c;border-radius:6px;width:27px;height:27px;font-size:18px;cursor:pointer}
.attachment-manager{margin-top:12px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.attachment-manager>div:first-child{display:flex;flex-direction:column;gap:4px}.attachment-manager span{font-size:12px;color:#64748b}.attachment-upload-controls{display:flex;align-items:flex-end;gap:8px}.attachment-upload-controls>label:first-child{display:flex;min-width:290px;flex-direction:column;gap:4px;color:#475569;font-size:10.5px;font-weight:800}.attachment-upload-controls select{box-sizing:border-box;width:100%;max-width:430px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:7px 8px;font:12px inherit}.attachment-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.attachment-list span{border:1px solid #cbd5e1;border-radius:20px;padding:4px 9px;background:#f8fafc;color:#334155}.attachment-list strong{color:#0f766e}.attachment-list code{color:#334155}.attachment-manager .btn.disabled{cursor:not-allowed!important;opacity:.55}
.lifecycle-change-list{display:flex;flex-direction:column;gap:12px}.lifecycle-change-card{overflow:hidden}.change-compare{display:grid;grid-template-columns:1fr 1fr}.change-compare section{padding:14px 16px;border-right:1px solid #000;min-height:100px}.change-compare section:last-child{border-right:none}.change-compare small{display:block;color:#64748b;margin-top:4px}.change-compare p{line-height:1.5;margin:8px 0 0}
.report-lifecycle-cell{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:8px!important}.report-lifecycle-cell>span{font-size:9.5px;font-weight:800;padding:3px 7px;border-radius:20px}.report-lifecycle-cell small{font-size:9.5px;color:#92400e}.report-lock-btn{border:0;background:#0f766e;color:#fff;border-radius:5px;padding:5px 7px;font-size:9.5px;font-weight:700;cursor:pointer}.report-lock-btn.secondary{background:#e2e8f0;color:#475569}.report-lock-btn.warning{background:#fef3c7;color:#92400e}
.btn-danger{background:#b91c1c;color:#fff;border:1px solid #b91c1c}.btn-danger:hover{background:#991b1b}

/* Dedicated configuration pages: target systems, access profiles and module surfaces. */
.action-head{align-items:center}.btn-leading{padding:11px 17px;white-space:nowrap}.btn-compact{padding:7px 11px;border-radius:8px;font-size:11.5px}.selection-card{width:100%;padding:22px}.config-field{display:flex;flex-direction:column;gap:6px}.config-field>span,.config-grid label>span{color:#64748b;font-size:10.5px;font-weight:800;letter-spacing:.32px}.config-field select,.config-grid input,.config-grid select{box-sizing:border-box;width:100%;border:1px solid #d8e0e6;border-radius:9px;background:#fff;padding:10px 11px;color:#1e293b;font:13px inherit;outline:none}.config-field select:focus,.config-grid input:focus,.config-grid select:focus{border-color:#0f9b8e;box-shadow:0 0 0 3px rgba(15,155,142,.1)}.selection-summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:12px;margin-top:14px}.selection-summary>div{display:flex;min-width:0;flex-direction:column;gap:5px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:12px 14px}.selection-summary span{color:#64748b;font-size:10.5px;font-weight:750}.selection-summary b{overflow:hidden;color:#334155;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.config-chips{display:flex;flex-wrap:wrap;gap:6px}.config-chips i,.configured-surface-row i{border-radius:999px;background:#ccfbf1;padding:3px 8px;color:#0f766e;font-size:9.5px;font-style:normal;font-weight:800}.config-chips i.warning{background:#fef3c7;color:#92400e}.subpage-nav{margin-bottom:14px}.subpage-nav .btn{padding:8px 12px}.config-page{display:flex;flex-direction:column;gap:14px;width:100%}.config-section{padding:20px}.config-section-title{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;align-items:start;margin-bottom:17px}.config-section-title.split{grid-template-columns:32px minmax(0,1fr) auto}.config-section-title>span{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#dff7f4;color:#0f766e;font-size:13px;font-weight:900}.config-section-title h2{margin:1px 0 2px;color:#172033;font-size:15px}.config-section-title p{margin:0;color:#7890aa;font-size:11.5px;line-height:1.45}.config-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px 14px}.config-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.config-grid label{display:flex;min-width:0;flex-direction:column;gap:5px}.config-grid label>span em{color:#dc2626;font-style:normal}.config-grid label>span small{color:#94a3b8;font-size:10px;font-weight:600;letter-spacing:0}.config-grid .span-two{grid-column:1/-1}.config-check{align-items:center!important;flex-direction:row!important;gap:8px!important}.config-check input{width:15px!important;height:15px;margin:0;padding:0}.config-check>span{color:#475569!important;font-size:12px!important;letter-spacing:0!important}.config-repeat-list{display:flex;flex-direction:column;gap:11px}.config-repeat-card{overflow:hidden;border:1px solid #dbe3e9;border-radius:11px;background:#fbfcfd}.config-repeat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e7edf1;padding:10px 12px;background:#f4f7f9}.config-repeat-head>div{display:flex;min-width:0;align-items:center;gap:10px}.config-repeat-head>div>div{display:flex;min-width:0;flex-direction:column}.config-repeat-head b{color:#334155;font-size:12px}.config-repeat-head small{color:#8aa0b5;font-size:10px}.config-index{display:grid;width:22px;height:22px;flex:none;place-items:center;border-radius:7px;background:#fff;color:#0f766e;font-size:10.5px;font-weight:900;box-shadow:0 0 0 1px #dbe3e9}.config-repeat-card>.config-grid{padding:13px}.config-note,.config-error{border:1px solid #bae6fd;border-radius:9px;background:#f0f9ff;padding:10px 12px;color:#075985;font-size:11.5px;line-height:1.5}.config-error{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.page-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.sticky-actions{position:sticky;bottom:12px;z-index:6;margin-top:0;border:1px solid #dbe3e9;border-radius:11px;background:rgba(255,255,255,.96);padding:10px 12px;box-shadow:0 8px 25px rgba(15,23,42,.12);backdrop-filter:blur(8px)}.configured-surface-list{display:flex;flex-direction:column}.configured-surface-row{display:grid;grid-template-columns:minmax(190px,.38fr) minmax(0,1fr);gap:14px;align-items:center;border-top:1px solid #e2e8f0;padding:9px 0}.configured-surface-row:first-child{border-top:0}.configured-surface-row>div{display:flex;align-items:center;gap:7px}.configured-surface-row b{color:#334155;font-size:11px}.configured-surface-row small{border-left:1px solid #cbd5e1;padding-left:7px;color:#64748b;font-size:9.5px;text-transform:capitalize}.configured-surface-row>span{overflow:hidden;color:#475569;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}

.config-secret-input{display:flex;align-items:stretch}.config-secret-input input{min-width:0;border-radius:9px 0 0 9px!important}.config-secret-input button{flex:none;border:1px solid #d8e0e6;border-left:0;border-radius:0 9px 9px 0;background:#f8fafc;padding:0 12px;color:#0f766e;font:800 10.5px 'Plus Jakarta Sans',system-ui,sans-serif;cursor:pointer}.config-secret-input button:hover{background:#ecfdf5}.credential-note{margin-top:13px}.connection-result{min-width:0;flex:1;align-self:center;color:#64748b;font-size:10.5px}.connection-result.success{color:#047857}.connection-result.failure{color:#b91c1c}

@media(max-width:760px){.action-head{align-items:stretch;flex-direction:column}.action-head .btn{align-self:flex-start}.selection-summary,.config-grid.two-col,.config-section-title.split,.configured-surface-row{grid-template-columns:1fr}.config-section-title.split>.btn{grid-column:2;justify-self:start}.configured-surface-row{gap:4px}.sticky-actions{bottom:6px;flex-wrap:wrap}.connection-result{flex-basis:100%}}
@media(max-width:900px){.test-data-toolbar,.lifecycle-report-bar{align-items:flex-start;flex-direction:column}.change-compare{grid-template-columns:1fr}.change-compare section{border-right:none;border-bottom:1px solid #000}}
.hidden{display:none}
