.lab-launcher { margin: 20px 0; padding: 22px; border: 1px solid var(--border); border-left: 3px solid #45b89a; border-radius: 12px; background: var(--panel); }
.lab-launcher h3 { margin: 6px 0; font-size: 21px; }
.lab-launcher p { margin: 6px 0; color: var(--muted); }
.lab-eyebrow { color: var(--accent); font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.lab-actions { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:14px 0 0; }
.lab-actions label { margin: 0; }
.lab-dialog { color: var(--text); background: var(--panel); width:min(720px, calc(100vw - 28px)); max-height:calc(100dvh - 40px); border:1px solid var(--border); border-radius:16px; padding:24px; overflow-y:auto; overflow-wrap:anywhere; }
.lab-dialog.lab-wide { width:min(1120px, calc(100vw - 28px)); }
.lab-dialog::backdrop { background:#0009; }
.lab-header { display:flex; gap:16px; justify-content:space-between; align-items:start; }
.lab-header h2 { margin:6px 0 12px; font-size:24px; line-height:1.25; }
.lab-header > button { flex-shrink:0; padding:3px 10px; font-size:20px; }
.lab-message { padding:10px 12px; border-radius:8px; background:var(--panel-2); border-left:3px solid var(--good); font-size:13px; }
.lab-message:empty { display:none; }
.lab-message.error { border-color:var(--bad); color:var(--bad); }
.lab-body h3 { font-size:17px; margin:22px 0 10px; }
.lab-body .muted { font-size:13px; }
.lab-grid, .lab-library { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:16px 0; }
.lab-grid label { min-width:0; margin:0; }
.lab-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.lab-form textarea { resize:vertical; min-height:75px; }
.lab-form label { font-size:12px; }
.lab-blueprint, .lab-check-card, .lab-evidence-row, .lab-version { padding:16px; border:1px solid var(--border); border-radius:10px; background:var(--panel-2); min-width:0; }
.lab-blueprint { display:flex; flex-direction:column; }
.lab-blueprint h3 { margin:10px 0; }
.lab-blueprint .lab-actions { margin-top:auto; }
.lab-blueprint .opp-badges { margin:0; }
.lab-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; padding-bottom:12px; border-bottom:1px solid var(--border); }
.lab-tabs button { font-size:12px; }
.lab-tabs [aria-pressed="true"] { color:var(--accent); border-color:var(--accent); background:var(--panel-2); }
.lab-evidence-row, .lab-version { margin:12px 0; }
.lab-evidence-row .lab-grid { margin-top:0; }
.lab-check { display:flex; align-items:center; gap:10px; margin:0; }
.lab-check input { width:auto; margin:0; }
.lab-check small { display:block; color:var(--muted); margin-top:4px; }
.lab-acceptance-row, .lab-list-row { display:flex; gap:12px; align-items:center; margin:12px 0; padding:12px; border:1px solid var(--border); border-radius:8px; }
.lab-grow, .lab-list-row > label { flex:1; min-width:0; }
.lab-acceptance-row label { margin:0; }
.lab-priority { font-size:12px; }
.lab-metric { color:var(--accent); font-weight:650; }
.lab-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:16px 0; }
.lab-metrics > span { padding:14px; border:1px solid var(--border); border-radius:10px; font-size:12px; color:var(--muted); }
.lab-metrics strong { display:block; font-size:17px; color:var(--text); margin-top:6px; }
.lab-footer { display:flex; flex-wrap:wrap; gap:10px; border-top:1px solid var(--border); margin-top:24px; padding:12px 0; position:sticky; bottom:0; z-index:2; background:var(--panel); }
.lab-table-scroll { max-width:100%; overflow-x:auto; }
.lab-table { border-collapse:collapse; width:100%; font-size:13px; }
.lab-table th, .lab-table td { border:1px solid var(--border); text-align:left; vertical-align:top; padding:12px; min-width:130px; max-width:290px; white-space:pre-wrap; overflow-wrap:anywhere; }
.lab-table th { background:var(--panel-2); }
.lab-export-text { height:45vh; font-family:ui-monospace,monospace; font-size:12px; }
.lab-version pre { font:12px/1.5 ui-monospace,monospace; white-space:pre-wrap; max-height:300px; overflow:auto; }
@media(max-width:680px) { .lab-grid, .lab-library { grid-template-columns:1fr; } .lab-dialog { padding:16px; } .lab-header h2 { font-size:20px; } .lab-acceptance-row, .lab-list-row { flex-wrap:wrap; } .lab-list-row > label { flex-basis:100%; } .lab-acceptance-row .lab-grow { flex-basis:calc(100% - 110px); } .lab-launcher { padding:16px; } }
