/* Palette and typography from the Crickroo database workbench. */
@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/geist-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/geist-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/geist-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/geist-mono-latin-400-normal.woff2') format('woff2')}
:root {
  color-scheme:dark;
  --bg:#101112;--card:#191a1c;--wash:#232527;--border:#34373b;
  --subtle:#2b2d31;--control:#575b62;--text:#f4f4f5;--secondary:#c3c5c8;
  --muted:#9b9ea4;--accent:#d48a58;--accent-foreground:#0a0a0a;
  --link:#ff9b58;--tint:#3c2719;--success:#8fd6b9;--amber:#efca90;
  --font:Geist,ui-sans-serif,system-ui,sans-serif;
  --mono:'Geist Mono',ui-monospace,monospace;
  font-synthesis:none;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font)}
a{color:var(--link)}
button,input{font:inherit}
button,a,input,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.page-shell{max-width:1360px;margin:auto;padding:0 24px 24px}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}
.brand{font-size:19px;font-weight:600;letter-spacing:-.5px;text-decoration:none;color:var(--text)}
.brand span{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}
.workspace-overview{display:grid;grid-template-columns:1fr minmax(300px,420px);align-items:center;gap:24px;padding:20px 0 16px}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:1px;color:var(--muted);margin:0 0 4px}
h1{font-size:24px;line-height:1.3;letter-spacing:-.6px;font-weight:600;margin:0}
.subtitle,.muted,.caption,.note,.sources,.footer{color:var(--muted)}
.subtitle{margin:6px 0 0;font-size:13px}
.progress-panel{padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:6px}
.progress-panel .eyebrow{display:none}
.progress-text{display:flex;align-items:baseline;gap:10px;margin:0 0 8px}
.progress-text strong{font-size:20px;line-height:1.2;letter-spacing:-.4px;font-weight:600}
.progress-text span{font-size:12px;color:var(--secondary)}
progress{display:block;width:100%;height:5px;border:0;border-radius:3px;overflow:hidden;background:var(--subtle);accent-color:var(--accent)}
progress::-webkit-progress-bar{background:var(--subtle)}
progress::-webkit-progress-value{background:var(--accent)}
progress::-moz-progress-bar{background:var(--accent)}
.caption{font-size:12px;margin:4px 0 0}
.progress-panel .caption{font-size:11px;margin-top:6px}
.intro{font-size:13px;margin:0 0 3px}
.intro strong{font-weight:500}
.categories{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}
button,.login-link{display:inline-block;color:var(--secondary);background:var(--card);border:1px solid var(--border);border-radius:4px;padding:6px 9px;cursor:pointer;font-size:12px;line-height:1.5;text-decoration:none}
button:hover{color:var(--text);border-color:var(--control)}
button.active,.login-link{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground);font-weight:500}
button.active:hover,.login-link:hover{background:#d79365;border-color:#d79365;color:var(--accent-foreground)}
.guidance{background:var(--card);border:1px solid var(--border);border-radius:4px;margin:10px 0;font-size:12px}
.guidance>summary{padding:8px 12px;cursor:pointer;color:var(--secondary)}
.example{padding:0 12px 12px;font-size:12px;color:var(--secondary)}
.example p{margin:0}
.example p+p{margin-top:6px}
.list-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 8px;font-size:12px}
.batch-title{font-size:15px;font-weight:600;letter-spacing:-.2px;margin:20px 0 10px}
.batch:first-child .batch-title{margin-top:10px}
.case{padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:6px;margin-bottom:10px;transition:border-color .15s}
.case.completed{border-color:var(--success)}
.case-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.case-id{font:12px var(--mono);color:var(--secondary)}
.badge{font-size:10px;border:1px solid var(--border);border-radius:3px;padding:1px 5px;color:var(--muted)}
.badge.gap{color:var(--amber)}
.complete-control{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);cursor:pointer;font-size:12px;min-height:28px}
.complete-control input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.completed .complete-control{color:var(--success)}
h3{font-size:15px;line-height:1.4;margin:0 0 8px;font-weight:600;letter-spacing:-.15px}
.facts,.steps,.negative{font-size:13px}
.facts p{margin:3px 0;color:var(--secondary)}
.label{font-weight:500;color:var(--text)}
.steps{padding-left:20px;margin:4px 0 10px;color:var(--secondary)}
.steps li+li{margin-top:2px}
.expected{padding:8px 10px;background:var(--wash);border-radius:4px;border-left:2px solid var(--accent);font-size:13px;margin:0 0 8px}
.expected strong{color:var(--text);font-weight:600}
.negative{margin:0 0 6px;color:var(--secondary)}
.note{font-size:12px;margin:0 0 6px}
.db{border-top:1px solid var(--border);padding-top:7px;font-size:12px}
.db>summary{color:var(--secondary);cursor:pointer;min-height:28px;font-size:13px;font-weight:500}
.db>summary:hover{color:var(--text)}
.db p{margin:8px 0}
.query{margin-top:10px}
.query strong{font-size:12px;font-weight:500}
pre{font:12px/1.5 var(--mono);overflow:auto;max-height:380px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--secondary);margin:6px 0 10px}
code{font-family:var(--mono)}
.sources{font-size:11px;margin-top:6px;overflow-wrap:anywhere}
.sources summary{cursor:pointer}
.footer{font-size:11px;margin-top:16px}
.login-shell{max-width:420px;margin:12vh auto;padding:24px}
.login-card{margin-top:24px;padding:24px;border:1px solid var(--border);background:var(--card);border-radius:6px}
.login-card h1{font-size:26px}
.login-card .login-link{margin-top:20px;padding:10px 16px;font-size:14px;width:100%;text-align:center}
@media(max-width:700px){
  .page-shell{padding:0 14px 20px}
  .workspace-overview{grid-template-columns:1fr;gap:12px;padding:16px 0}
  .case{padding:12px}
  .categories{gap:4px}
  .categories button{font-size:11px;padding:5px 7px}
  .complete-control{font-size:11px}
  .login-shell{padding:20px}
  .login-card{padding:20px}
}
@media print{.categories,.masthead form{display:none}.case{break-inside:avoid}pre{max-height:none;white-space:pre-wrap}}
.pass-guide{font-size:12px;color:var(--secondary);margin:-3px 0 14px;max-width:1050px}
.stage-title{font-size:12px;font-weight:500;color:var(--muted);margin:16px 0 8px;letter-spacing:.15px}
.steps-label{font-size:12px}
.lookup-panel{margin:12px 0}
.matrix-wrap{padding:0 12px 12px;overflow-x:auto}
.access-table{border-collapse:collapse;font-size:12px;width:100%;min-width:1150px;margin:12px 0}
.access-table th,.access-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}
.access-table thead th{background:var(--wash);font-weight:500}
.access-table tbody th{min-width:200px;font-weight:500}
.access-allow{color:var(--success)}
.access-deny{color:var(--secondary)}
.matrix-notes{max-width:1100px;color:var(--secondary);font-size:12px;padding-left:18px}
.matrix-notes li+li{margin-top:6px}
.permissions{border-top:1px solid var(--border);padding:8px 0;font-size:12px}
.permissions summary{cursor:pointer;color:var(--secondary);min-height:24px}
.permissions dt{font-weight:500;color:var(--text);margin-top:8px}
.permissions dd{color:var(--secondary);margin:3px 0 0}
.audit-table{border-collapse:collapse;font-size:12px;width:100%;min-width:750px;margin:12px 0}
.audit-table th,.audit-table td{border:1px solid var(--border);padding:9px;text-align:left;vertical-align:top}
.audit-table th{font-weight:500}
.audit-table thead{background:var(--wash)}
.audit-table td{color:var(--secondary)}
.audit-table td:nth-child(2){max-width:250px;overflow-wrap:anywhere}
.pilot-body{padding:0 14px 14px}
.pilot-status{font-size:13px;margin:6px 0;color:var(--text)}
.pilot-status span{display:block;color:var(--secondary);font-size:12px;margin-top:4px}
.pilot-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}
.file-control{font-size:12px;color:var(--secondary);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.file-control input{font-size:11px;max-width:250px}
.request-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;margin:14px 0}
.request-grid label{display:grid;gap:4px;font-size:12px;color:var(--secondary)}
.request-grid select,.request-grid input{font:13px var(--font);color:var(--text);background:var(--card);border:1px solid var(--control);border-radius:4px;padding:7px;min-width:0;width:100%}
.request-grid input:focus-visible,.request-grid select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pilot-message{font-size:13px;padding:8px 10px;border:1px solid var(--border);border-radius:4px;color:var(--secondary)}
.pilot-message.error{color:#ffaaa3;border-color:#9f4945}
.oracle-table{border-collapse:collapse;font-size:12px;width:100%;min-width:780px;margin:8px 0}
.oracle-table th,.oracle-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}
.oracle-table th{font-weight:500}
.oracle-table td{color:var(--secondary)}
.policy-register dt,.comparison-values dt{font-weight:500;margin-top:10px}
.policy-register dd,.comparison-values dd{color:var(--secondary);margin:4px 0 0}
.validation-summary{padding:9px 11px;border-left:2px solid var(--control);background:var(--wash);border-radius:3px;font-size:12px;color:var(--secondary);margin:10px 0}
.validation-summary p{margin:0}
.validation-summary p+p{margin-top:5px}
.validation-summary strong{font-weight:500;color:var(--text)}
.validation-contract,.ui-observation{font-size:12px;margin:9px 0;color:var(--secondary)}
.validation-contract summary,.ui-observation summary{cursor:pointer;min-height:25px;color:var(--text)}
.validation-contract p{margin:8px 0}
.ui-observation .steps{margin-top:8px}
.real-table{border-collapse:collapse;font-size:12px;width:100%;min-width:740px;margin:10px 0}
.real-table th,.real-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.real-table th{font-weight:500}.real-table thead{background:var(--wash)}.real-table td{color:var(--secondary)}
.real-table code{font-size:11px}.real-filters{margin:14px 0 8px}.real-steps{margin-top:12px}
.real-case .badge{color:var(--secondary)}.real-role{margin-bottom:18px}
.catalog-body{padding:0 14px 14px}.catalog-body>.progress-panel{max-width:450px;margin:14px 0}.legacy-catalog{margin-top:28px}
#real-user-pilot>.intro{margin-top:0}
.developer-guide{border:1px solid var(--border);border-radius:5px;padding:10px 12px;background:var(--card);margin:12px 0;font-size:13px;color:var(--secondary)}
.developer-guide p{margin:4px 0 9px}.developer-guide p:last-child{margin-bottom:4px}.developer-guide strong{color:var(--text);font-weight:500}
.developer-phase h4{font-size:13px;font-weight:600;margin:13px 0 5px;color:var(--text)}
.developer-phase .steps{margin-top:6px}.be-handoff ul{padding-left:20px;color:var(--secondary)}.be-handoff li+li{margin-top:5px}
/* Compact reading hierarchy: short overview, full evidence on demand. */
.quick-start{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;padding:10px 0;margin:4px 0 12px;border-bottom:1px solid var(--border)}
.quick-start li{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.5;color:var(--secondary)}
.quick-start strong{font-weight:600;color:var(--text)}
.developer-guide.guidance{padding:0;background:var(--card)}
.developer-guide .pilot-body{font-size:13px;line-height:1.6}
.developer-guide .pilot-body p{margin:8px 0}
.real-case{padding:16px;margin-bottom:12px}
.real-case h3{font-size:16px;line-height:1.4;margin-bottom:12px}
.case-brief{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;align-items:start}
.case-brief h4{font-size:12px;font-weight:600;color:var(--muted);margin:0 0 5px}
.case-brief p{font-size:13px;line-height:1.6;margin:0;color:var(--secondary)}
.case-brief .expected{padding:9px 11px;margin:0}
.case-brief .expected h4{color:var(--text)}
.workflow-columns{display:grid;grid-template-columns:1fr .9fr 1fr;gap:20px;align-items:start;border-top:1px solid var(--border);padding-top:12px;margin-top:14px}
.workflow-columns .developer-phase{min-width:0}
.workflow-columns .developer-phase h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;font-weight:600}
.phase-number{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border:1px solid var(--border);border-radius:50%;font-size:11px;font-weight:500;color:var(--secondary)}
.workflow-columns p,.workflow-columns li{font-size:13px;line-height:1.6;color:var(--secondary)}
.workflow-columns p{margin:0 0 7px}
.phase-detail{font-size:13px;line-height:1.6;margin-top:6px}
.phase-detail>summary{color:var(--secondary);cursor:pointer;min-height:28px;padding:3px 0;font-size:12px}
.phase-detail>summary:hover{color:var(--text)}
.phase-detail .steps{margin-top:7px}
.phase-detail li+li{margin-top:6px}
.case-resources{margin-top:10px}
.case-resources>.db,.case-resources>.validation-contract{margin:7px 0 4px;padding:6px 0 0}
.case-resources p,.case-resources li,.case-resources dd{font-size:13px;line-height:1.6;color:var(--secondary)}
.case-resources dl{display:grid;grid-template-columns:minmax(100px,170px) minmax(0,1fr);gap:6px 12px;margin:12px 0}
.case-resources dt{font:12px/1.6 var(--mono);overflow-wrap:anywhere;color:var(--secondary)}
.case-resources dd{margin:0}
.case-resources ul{padding-left:20px}
.expected>p{margin:5px 0 0;line-height:1.6}
.case .facts p,.case .negative,.case .note{line-height:1.6}
.case .ui-observation .steps li+li{margin-top:6px}
@media(max-width:900px){.workflow-columns{grid-template-columns:1fr;gap:12px}.workflow-columns .developer-phase+.developer-phase{border-top:1px solid var(--border);padding-top:12px}}
@media(max-width:650px){.quick-start{gap:9px}.quick-start li{font-size:12px}.case-brief{grid-template-columns:1fr;gap:10px}.real-case{padding:12px}.case-resources dl{grid-template-columns:1fr;gap:3px}.case-resources dd{margin-bottom:6px}}

/* Shared run workspace: compact fields, readable evidence and clear phases. */
.shared-panel { margin: 24px 0; padding: 22px; background: var(--panel, #191a1c); border: 1px solid var(--border, #35383d); border-radius: 12px; }
.shared-panel h2 { margin: 0 0 8px; font-size: 23px; }
.section-heading,.run-toolbar,.field-row { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.section-heading { justify-content:space-between; align-items:center; }
.shared-panel label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:#c5c8cf; flex:1; min-width:150px; }
.shared-panel input,.shared-panel select,.shared-panel textarea { font:inherit; color:#f2f3f5; background:#121315; border:1px solid #454a52; border-radius:6px; padding:10px 11px; max-width:100%; box-sizing:border-box; }
.shared-panel input:focus,.shared-panel select:focus,.shared-panel textarea:focus { outline:2px solid #8496b4; outline-offset:1px; }
.shared-panel textarea { resize:vertical; min-height:65px; }
.shared-panel form { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:14px 0; }
.shared-panel form label:has(textarea) { flex-basis:100%; }
.shared-panel button { font:inherit; font-size:13px; color:#eceef2; background:#292d33; border:1px solid #555b65; border-radius:6px; padding:9px 13px; cursor:pointer; }
.shared-panel button:disabled { opacity:.5; cursor:default; }
.shared-panel button:hover:not(:disabled) { background:#373e49; }
.shared-panel a { color:#c4d2e8; text-decoration:underline; text-underline-offset:3px; }
.shared-panel summary { padding:10px 0; color:#e1e5eb; cursor:pointer; }
.shared-section,.new-run { border-top:1px solid #373a40; padding:9px 0; margin:12px 0; }
.shared-section>summary { font-size:17px; font-weight:600; }
.shared-categories { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0; }
.shared-categories button[aria-pressed=true] { background:#455269; border-color:#9aaac4; }
.shared-categories span { opacity:.7; margin-left:4px; }
.shared-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:5px 16px; margin:18px 0; }
.shared-summary>strong { font-size:26px; }
.shared-summary p { margin:4px 0; font-size:13px; color:#c0c5ce; }
.shared-summary progress { width:100%; }
.fixture-row { border-bottom:1px solid #30343b; padding:3px 0; }
.fixture-row summary { display:list-item; }
.status-pill { display:inline-block; margin-left:12px; border:1px solid #515b6a; border-radius:6px; font-size:12px; padding:1px 7px; color:#ced7e6; }
.workspace-message { min-height:1.4em; color:#c7d8d0; }
.workspace-message.error { color:#ffb8b8; }
.bundle-summary { border:1px solid #414954; border-radius:8px; padding:15px; margin:15px 0; overflow-wrap:anywhere; }
.bundle-summary p { margin:7px 0; }
.shared-panel pre { font-family:'Geist Mono',monospace; font-size:12px; line-height:1.65; overflow-wrap:anywhere; white-space:pre-wrap; background:#111215; padding:14px; border-radius:6px; max-height:450px; overflow:auto; }
.empty-state { padding:16px 0; color:#c9cdd5; }
.review-receipt,.policy-item { border-left:2px solid #5a6980; padding:5px 0 5px 14px; margin:18px 0; }
.policy-warning { color:#e6d5af; border:1px solid #695e42; padding:12px; border-radius:6px; }
.backend-check { margin:8px 0; }
@media(max-width:640px){.shared-panel{padding:15px}.shared-panel form label{flex-basis:100%}.shared-panel button{min-height:42px}.run-toolbar{align-items:stretch}.shared-categories button{flex:1 1 40%}}

.overall-execution{display:grid;gap:.5rem;margin:1.2rem 0;padding:1rem 0;border-top:1px solid var(--border,#343434)}.overall-execution span{font-size:.85rem;color:#aaa}.overall-execution progress{width:100%;height:.45rem}
.shared-panel label:has(input[type=checkbox]){flex-direction:row;align-items:center;flex-basis:100%;min-height:36px}.shared-panel input[type=checkbox]{width:16px;height:16px;accent-color:#9baec9}
/* Tester checklist: no data-entry controls, only category filters and review ticks. */
.evidence-panel{margin:12px 0 20px}.evidence-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.evidence-heading p{margin:4px 0;font-size:13px;color:var(--muted)}.evidence-heading a,.evidence-panel a{font-size:13px;color:#c4d2e8;text-underline-offset:3px}.category-evidence{padding:10px 0;border-top:1px solid var(--border)}.category-evidence>summary{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;cursor:pointer;padding:8px 0}.category-evidence>summary::before{content:'▸';color:var(--muted)}.category-evidence[open]>summary::before{content:'▾'}.category-evidence>details{margin:10px 0}.category-evidence li p{margin:5px 0 12px}.evidence-panel pre{font:12px/1.65 'Geist Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#111215;padding:12px;max-height:420px;overflow:auto}.scenario-catalog .catalog-body{padding:0}.progress-panel{min-width:0}input[type=checkbox]:disabled{cursor:default;opacity:.55}
