/* IBANgen Lab shell: rail + workspace bar + canvas shared by every Lab tool page. */
:root {
    --ls-bg:#030806; --ls-panel:#0b1913; --ls-line:rgba(148,163,184,.18); --ls-line-2:rgba(148,163,184,.32);
    --ls-text:#f5f7f6; --ls-muted:#a9b6af; --ls-dim:#7d8c85; --ls-green:#31e274; --ls-green-soft:#95f6b2; --ls-amber:#ffd479;
    --ls-nav-h:73px; --ls-rail-w:264px;
}
body.lab-shell-page { margin:0; min-height:100vh; padding-top:var(--ls-nav-h); color:var(--ls-text); background:radial-gradient(1200px 500px at 70% -10%, rgba(49,226,116,.07), transparent 60%), var(--ls-bg); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.lab-app { display:grid; grid-template-columns:var(--ls-rail-w) minmax(0,1fr); min-height:calc(100vh - var(--ls-nav-h)); }
.lab-app [hidden] { display:none !important; }
.ls-icon { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* Rail */
.lab-rail { position:sticky; top:var(--ls-nav-h); height:calc(100vh - var(--ls-nav-h)); overflow-y:auto; padding:16px 12px 24px; border-right:1px solid var(--ls-line); background:rgba(4,12,9,.9); scrollbar-width:thin; }
.ls-brand { display:flex; align-items:center; gap:10px; padding:4px 8px 14px; color:var(--ls-text); text-decoration:none; }
.ls-brand-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#031009; background:linear-gradient(135deg,#2ccc67,var(--ls-green)); font-weight:900; }
.ls-brand strong { display:block; font-size:.98rem; } .ls-brand small { color:var(--ls-dim); font-size:.72rem; }
.ls-search { display:flex; align-items:center; gap:8px; width:100%; min-height:38px; margin:0 0 12px; padding:0 10px; border:1px solid var(--ls-line-2); border-radius:9px; color:var(--ls-dim); background:#020705; font:inherit; font-size:.84rem; cursor:pointer; text-align:left; }
.ls-search kbd { margin-left:auto; padding:1px 6px; border:1px solid var(--ls-line-2); border-radius:5px; font-family:inherit; font-size:.68rem; }
.ls-label { margin:14px 8px 4px; color:var(--ls-dim); font-size:.66rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.ls-link { display:flex; align-items:center; gap:9px; min-height:34px; padding:6px 8px; border-radius:8px; color:#cfdad4; text-decoration:none; font-size:.86rem; line-height:1.25; }
.ls-link:hover { color:#fff; background:rgba(255,255,255,.05); }
.ls-link.active { color:#fff; background:color-mix(in srgb, var(--accent,#31e274) 14%, transparent); box-shadow:inset 2px 0 0 var(--accent,#31e274); }
.ls-link .ls-icon { width:16px; height:16px; color:var(--accent,#31e274); opacity:.9; }
.ls-link .ls-lock { margin-left:auto; color:var(--ls-amber); font-size:.7rem; }
.ls-home { font-weight:800; }
.ls-section { margin-top:4px; }
.ls-section summary { display:flex; align-items:center; gap:8px; min-height:34px; padding:6px 8px; border-radius:8px; list-style:none; cursor:pointer; color:#e8f0eb; font-size:.84rem; font-weight:800; }
.ls-section summary::-webkit-details-marker { display:none; }
.ls-section summary:hover { background:rgba(255,255,255,.04); }
.ls-section summary .ls-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); }
.ls-section summary .ls-count { margin-left:auto; color:var(--ls-dim); font-size:.7rem; font-weight:700; }
.ls-section summary .ls-chev { width:14px; height:14px; color:var(--ls-dim); transition:transform .15s; }
.ls-section[open] summary .ls-chev { transform:rotate(90deg); }
.ls-section-body { display:grid; gap:1px; padding:2px 0 6px 10px; margin-left:11px; border-left:1px solid var(--ls-line); }
.ls-hub { color:var(--ls-dim); font-size:.78rem; }
.ls-empty { padding:4px 8px; color:var(--ls-dim); font-size:.78rem; }
.ls-plan { margin:18px 4px 0; padding:13px; border:1px solid rgba(49,226,116,.3); border-radius:12px; background:linear-gradient(160deg,rgba(22,68,38,.55),rgba(8,24,15,.6)); }
.ls-plan strong { display:block; margin-bottom:4px; font-size:.9rem; } .ls-plan p { margin:0 0 10px; color:var(--ls-muted); font-size:.78rem; line-height:1.45; }
.ls-plan a { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 12px; border-radius:8px; color:#031009; background:linear-gradient(135deg,#2ccc67,var(--ls-green)); font-size:.8rem; font-weight:900; text-decoration:none; }

/* Workspace bar */
.lab-main { min-width:0; display:flex; flex-direction:column; }
.lab-bar { position:sticky; top:var(--ls-nav-h); z-index:30; display:flex; align-items:center; gap:12px; min-height:48px; padding:6px clamp(16px,3vw,36px); border-bottom:1px solid var(--ls-line); background:rgba(3,8,6,.9); backdrop-filter:blur(10px); }
.ls-crumbs { display:flex; align-items:center; gap:7px; min-width:0; overflow:hidden; color:var(--ls-dim); font-size:.82rem; white-space:nowrap; }
.ls-crumbs a { color:#cfdad4; text-decoration:none; } .ls-crumbs a:hover { color:#fff; }
.ls-crumbs .ls-sec { color:var(--accent,#31e274); font-weight:800; }
.ls-crumbs .ls-here { overflow:hidden; text-overflow:ellipsis; color:#fff; font-weight:700; }
.ls-bar-actions { display:flex; gap:8px; margin-left:auto; }
.ls-bar-btn { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:0 11px; border:1px solid var(--ls-line-2); border-radius:8px; color:#dfe8e3; background:transparent; font:inherit; font-size:.8rem; font-weight:800; cursor:pointer; text-decoration:none; }
.ls-bar-btn:hover { border-color:var(--ls-green-soft); }
.ls-menu-btn { display:none; }
.lab-canvas { min-width:0; flex:1; }
.lab-canvas.is-loading { opacity:.45; transition:opacity .15s; pointer-events:none; }
.ls-progress { position:fixed; top:var(--ls-nav-h); left:0; z-index:2100; height:2px; width:0; background:var(--ls-green); box-shadow:0 0 8px var(--ls-green); transition:width .3s ease; }

/* Command palette */
.ls-palette { position:fixed; inset:0; z-index:2200; display:grid; align-items:start; justify-items:center; padding:12vh 16px 16px; background:rgba(0,0,0,.6); }
.ls-palette-box { width:min(640px,100%); overflow:hidden; border:1px solid var(--ls-line-2); border-radius:14px; background:#06110c; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.ls-palette input { width:100%; height:54px; padding:0 18px; border:0; border-bottom:1px solid var(--ls-line); color:var(--ls-text); background:transparent; font:inherit; font-size:1rem; outline:none; }
.ls-palette ul { max-height:min(420px,60vh); overflow:auto; margin:0; padding:6px; list-style:none; }
.ls-palette li a { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:9px; color:var(--ls-text); text-decoration:none; }
.ls-palette li a.on, .ls-palette li a:hover { background:color-mix(in srgb, var(--accent,#31e274) 14%, transparent); }
.ls-palette li .ls-icon { color:var(--accent); width:20px; height:20px; }
.ls-palette li small { display:block; color:var(--ls-dim); font-size:.76rem; }
.ls-palette li em { margin-left:auto; color:var(--ls-dim); font-size:.7rem; font-style:normal; white-space:nowrap; }
.ls-palette-empty { padding:16px; color:var(--ls-dim); }

/* Mobile: rail becomes an off-canvas drawer opened from the workspace bar. */
@media (max-width:980px) {
    :root { --ls-nav-h:65px; }
    .lab-app { grid-template-columns:minmax(0,1fr); }
    .lab-rail { position:fixed; top:0; left:0; z-index:2150; width:min(320px,86vw); height:100vh; padding-top:18px; transform:translateX(-102%); transition:transform .2s ease; box-shadow:20px 0 60px rgba(0,0,0,.5); }
    .lab-rail.open { transform:none; }
    .ls-rail-scrim { position:fixed; inset:0; z-index:2140; background:rgba(0,0,0,.55); }
    .ls-menu-btn { display:inline-flex; }
    .ls-search-btn kbd, .ls-search-btn span { display:none; }
}
@media (prefers-reduced-motion: reduce) { .lab-rail, .ls-progress, .lab-canvas.is-loading { transition:none; } }

/* Shared canvas components: page padding, hero, tool cards, FAQ. */
.lc-page { padding:26px clamp(16px,3vw,40px) 64px; }
.lc-hero { display:flex; gap:16px; align-items:flex-start; max-width:900px; }
.lc-hero-icon { flex:0 0 auto; display:grid; place-items:center; width:54px; height:54px; border-radius:15px; color:var(--accent); background:color-mix(in srgb, var(--accent) 13%, transparent); border:1px solid color-mix(in srgb, var(--accent) 32%, transparent); }
.lc-hero-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lc-eyebrow { color:var(--accent); font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.lc-page h1 { margin:6px 0 10px; font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.08; letter-spacing:-.03em; }
.lc-lede { margin:0; color:var(--ls-muted); line-height:1.65; font-size:1.02rem; }
.lc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; margin-top:26px; }
.lc-card { --accent:var(--ls-green); position:relative; display:flex; flex-direction:column; gap:10px; min-height:190px; padding:16px; border:1px solid var(--ls-line); border-radius:14px; color:var(--ls-text); background:linear-gradient(180deg,rgba(13,28,22,.9),rgba(8,18,14,.9)); text-decoration:none; transition:border-color .15s, transform .15s, box-shadow .15s; }
.lc-card:hover, .lc-card:focus-visible { border-color:color-mix(in srgb, var(--accent) 60%, transparent); transform:translateY(-2px); box-shadow:0 14px 40px -18px color-mix(in srgb, var(--accent) 55%, transparent); outline:none; }
.lc-card-top { display:flex; align-items:flex-start; gap:12px; }
.lc-tile { flex:0 0 auto; display:grid; place-items:center; width:42px; height:42px; border-radius:11px; color:var(--accent); background:color-mix(in srgb, var(--accent) 13%, transparent); border:1px solid color-mix(in srgb, var(--accent) 30%, transparent); }
.lc-tile svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lc-card h2, .lc-card h3 { margin:2px 0 0; font-size:1rem; line-height:1.3; }
.lc-card p { margin:0; color:var(--ls-muted); font-size:.85rem; line-height:1.5; }
.lc-use { display:flex; gap:7px; align-items:baseline; padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.035); color:#dbe5df; font-size:.78rem; line-height:1.35; }
.lc-use b { flex:0 0 auto; color:var(--accent); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; }
.lc-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:auto; }
.lc-badge { padding:2px 8px; border-radius:999px; font-size:.7rem; font-weight:800; border:1px solid var(--ls-line-2); color:#cfdad4; }
.lc-badge.free { color:var(--ls-green-soft); border-color:rgba(49,226,116,.4); }
.lc-badge.pro { color:var(--ls-amber); border-color:rgba(255,212,121,.45); }
.lc-badge.beta { color:#9cc7ff; border-color:rgba(156,199,255,.45); }
.lc-open { margin-left:auto; color:var(--accent); font-size:.8rem; font-weight:900; }
.lc-faq { margin-top:34px; padding:22px; border:1px solid var(--ls-line); border-radius:14px; background:rgba(8,18,14,.7); }
.lc-faq h2 { margin:0 0 6px; font-size:1.15rem; } .lc-faq h3 { margin:16px 0 4px; font-size:.95rem; }
.lc-faq p { margin:0; color:var(--ls-muted); line-height:1.6; font-size:.9rem; }
.lc-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.lc-chip { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--ls-line); border-radius:999px; color:#dfe8e3; text-decoration:none; font-size:.84rem; }
.lc-chip:hover { border-color:var(--accent); }
.lc-chip i { width:8px; height:8px; border-radius:50%; background:var(--accent); }
@media (max-width:620px) { .lc-hero-icon { display:none; } }

/* Page-level breadcrumbs duplicate the workspace bar inside the shell. */
.lab-canvas .crumbs { display:none !important; }
@media (min-width:981px) { .ls-search-btn { display:none; } }

/* One visual rhythm for every tool inside the workspace: compact page headers
   and no navbar-era top offsets (the shell already clears the fixed navbar). */
.lab-canvas > .lc-tool { padding-top:24px !important; }
html body.lab-shell-page .lab-canvas h1 { font-size:clamp(1.85rem,3.4vw,2.7rem) !important; line-height:1.08 !important; letter-spacing:-.03em !important; margin-top:10px; }
.lab-canvas .lc-tool .hero, .lab-canvas .lc-tool .hero-copy { padding-top:clamp(18px,3vw,30px); padding-bottom:clamp(18px,3vw,30px); }
html body.lab-shell-page .lab-canvas .lc-page h1 { font-size:clamp(1.85rem,3.4vw,2.6rem) !important; }
/* Tool stylesheets (index.css, site-dark.css) set their own navbar offset on body. */
html body.lab-shell-page { padding-top:var(--ls-nav-h) !important; }

/* ---------- Tool header (rendered by the shell for every tool page) ---------- */
.lab-rail, .lab-bar, .ls-th, .ls-next, .ls-palette { font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:15px; line-height:1.4; letter-spacing:normal; }
.ls-th { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:6px 16px; align-items:center; max-width:1180px; padding:22px clamp(16px,3vw,40px) 18px; border-bottom:1px solid var(--ls-line); }
.ls-th-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; color:var(--accent); background:color-mix(in srgb, var(--accent) 13%, transparent); border:1px solid color-mix(in srgb, var(--accent) 32%, transparent); }
.ls-th-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ls-th-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:.74rem; }
.ls-th-meta a { color:var(--accent); font-weight:900; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; margin-right:4px; }
.ls-badge { padding:2px 8px; border-radius:999px; border:1px solid var(--ls-line-2); color:#cfdad4; font-size:.7rem; font-weight:800; }
.ls-badge.free { color:var(--ls-green-soft); border-color:rgba(49,226,116,.4); }
.ls-badge.pro { color:var(--ls-amber); border-color:rgba(255,212,121,.45); }
.ls-badge.beta { color:#9cc7ff; border-color:rgba(156,199,255,.45); }
.ls-th-title { margin:4px 0 2px; color:#fff; font-size:1.55rem; font-weight:900; letter-spacing:-.02em; line-height:1.15; }
.ls-th-use { color:var(--ls-muted); font-size:.9rem; }
.ls-th-use b { color:var(--accent); font-size:.66rem; letter-spacing:.07em; text-transform:uppercase; margin-right:4px; }
.ls-th-actions { display:flex; gap:8px; align-self:start; }
.ls-th-actions [aria-pressed="true"] { color:var(--ls-amber); border-color:rgba(255,212,121,.5); }
.ls-th-steps { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 0; padding:0; list-style:none; counter-reset:none; }
.ls-th-steps li { display:flex; align-items:center; gap:8px; padding:6px 12px 6px 6px; border:1px solid var(--ls-line); border-radius:999px; color:#dfe8e3; font-size:.82rem; background:rgba(255,255,255,.02); }
.ls-th-steps li b { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; color:#031009; background:var(--accent); font-size:.74rem; }
.ls-next { max-width:1180px; margin:8px 0 0; padding:24px clamp(16px,3vw,40px) 40px; border-top:1px solid var(--ls-line); }
.ls-next h2 { margin:0 0 12px; color:#fff; font-size:1.05rem !important; font-weight:900; }
.ls-next-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px; }
.ls-next-card { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--ls-line); border-radius:12px; color:var(--ls-text); text-decoration:none; background:rgba(255,255,255,.02); }
.ls-next-card:hover { border-color:color-mix(in srgb, var(--accent) 55%, transparent); }
.ls-next-card .ls-th-icon { width:38px; height:38px; } .ls-next-card .ls-th-icon svg { width:20px; height:20px; }
.ls-next-card strong { display:block; font-size:.9rem; } .ls-next-card small { color:var(--ls-muted); font-size:.78rem; }
.ls-next-go { margin-left:auto; color:var(--accent); font-weight:900; }
@media (max-width:700px) { .ls-th { grid-template-columns:auto minmax(0,1fr); } .ls-th-actions { grid-column:1 / -1; } .ls-th-title { font-size:1.3rem; } .ls-th-icon { width:42px; height:42px; } }

/* ---------- Tool pages inside the shell: the header above names the tool, so the page's
   own marketing hero becomes a compact intro and the working area comes first. ---------- */
html body.lab-shell-page .lab-canvas > .lc-tool, html body.lab-shell-page .lab-canvas > .lm { width:auto !important; max-width:1180px !important; margin:0 !important; padding:18px clamp(16px,3vw,40px) 40px !important; }
html body.lab-shell-page .lab-canvas h1 { font-size:1.22rem !important; line-height:1.35 !important; font-weight:800 !important; letter-spacing:-.01em !important; color:#e8f0eb !important; margin:0 0 6px !important; max-width:900px; }
html body.lab-shell-page .lab-canvas h1 span, html body.lab-shell-page .lab-canvas h1 em { color:inherit !important; display:inline !important; }
.lab-canvas .lab-hero, .lab-canvas .lc-tool > .hero, .lab-canvas .lc-tool > section.hero, .lab-canvas .lc-tool > article.hero,
.lab-canvas .statement-hero, .lab-canvas .vop-hero, .lab-canvas .us-intro, .lab-canvas .lm > .hero {
    min-height:0 !important; margin:0 0 16px !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important;
}
.lab-canvas .lc-tool > .hero > .hero-copy, .lab-canvas .lc-tool > .hero > article, .lab-canvas .statement-hero .hero-copy, .lab-canvas .vop-hero > div:first-child {
    padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; min-height:0 !important;
}
.lab-canvas [class*="hero"] .eyebrow, .lab-canvas .us-intro .eyebrow, .lab-canvas .lm .hero-icon, .lab-canvas .lm .hero .eyebrow { display:none !important; }
.lab-canvas [class*="hero"] p, .lab-canvas .us-intro p, .lab-canvas .lm .lede { font-size:.95rem !important; line-height:1.6 !important; max-width:860px; margin:0 0 10px !important; }
.lab-canvas .hero-actions, .lab-canvas [class*="hero"] .actions { gap:8px !important; margin-top:10px !important; }
.lab-canvas .hero-actions a, .lab-canvas [class*="hero"] .actions a, .lab-canvas .hero-actions button, .lab-canvas [class*="hero"] .actions button {
    min-height:36px !important; padding:7px 13px !important; font-size:.84rem !important; box-shadow:none !important;
}
.lab-canvas .hero-actions > :not(:first-child), .lab-canvas [class*="hero"] .actions > :not(:first-child) {
    color:#e8f0eb !important; background:transparent !important; border:1px solid rgba(148,163,184,.32) !important;
}

/* Button hierarchy inside the workspace: site-dark.css paints every .btn as a primary
   green button; in the Lab only explicit primaries/submits stay green. */
html body.lab-shell-page .lab-canvas .btn, html body.lab-shell-page .lab-canvas .btn-neo { box-shadow:none !important; }
html body.lab-shell-page .lab-canvas .btn:not(.btn-primary):not(.btn-success):not(.primary):not([type="submit"]),
html body.lab-shell-page .lab-canvas .btn-secondary-neo {
    border:1px solid rgba(148,163,184,.32) !important; background:rgba(255,255,255,.03) !important; color:#eef5f1 !important;
}
html body.lab-shell-page .lab-canvas .btn:not(.btn-primary):not(.btn-success):not(.primary):not([type="submit"]):hover { border-color:rgba(149,246,178,.6) !important; }
/* One heading scale: section titles inside tools. */
html body.lab-shell-page .lab-canvas h2 { font-size:clamp(1.12rem,1.5vw,1.4rem) !important; line-height:1.3 !important; letter-spacing:-.01em !important; }
html body.lab-shell-page .lab-canvas h3 { font-size:1rem !important; line-height:1.35 !important; }
/* Promo summaries beside page heroes repeat the tool header; the hero becomes one column. */
.lab-canvas .vop-hero .spec-card, .lab-canvas .lc-tool > .hero > .proof-card, .lab-canvas .lc-tool > .hero > .proof,
.lab-canvas .lc-tool > .hero .stats, .lab-canvas .lc-tool > .hero > .start-card { display:none !important; }
.lab-canvas .vop-hero, .lab-canvas .lc-tool > .hero { display:block !important; grid-template-columns:none !important; }
/* In-tool section eyebrows ("Interactive regression builder") become small labels. */
html body.lab-shell-page .lab-canvas .eyebrow { font-size:.68rem !important; padding:4px 9px !important; }
/* Shell chrome must not depend on a tool page's box-sizing reset. */
.lab-rail, .lab-rail *, .lab-bar, .lab-bar *, .ls-th, .ls-th *, .ls-next, .ls-next *, .ls-palette, .ls-palette *, .lab-canvas { box-sizing:border-box; }
/* Routing checker: the shared validator card has its own centred mini-hero; inside the
   workspace it is a left-aligned form under the tool header. */
.lab-canvas .validator-card { background:none !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.lab-canvas .validator-heading { text-align:left !important; margin:0 0 14px !important; }
.lab-canvas .validator-heading .eyebrow, .lab-canvas .validator-proof { display:none !important; }
.lab-canvas .validator-heading p { margin-left:0 !important; max-width:860px !important; }
.lab-canvas .validator-form { max-width:760px; margin-left:0 !important; }
.lab-canvas .validator-form .primary-btn { margin-left:0 !important; }
/* Statement validator: copy starts at the top next to the upload card. */
.lab-canvas .statement-hero { align-items:start !important; }
/* Compact tool header on phones: one-line steps, icon-only pin, no format badge. */
@media (max-width:700px) {
    .ls-th { grid-template-columns:auto minmax(0,1fr) auto !important; gap:4px 12px; padding:14px 16px 12px; }
    .ls-th-actions { grid-column:auto !important; }
    .ls-th-actions a { display:none; }
    .ls-th-actions [data-lab-pin] { min-width:38px; min-height:38px; padding:0; justify-content:center; font-size:1rem; }
    .ls-th-actions .pin-txt { display:none; }
    .ls-th-meta .ls-badge:not(.free):not(.pro):not(.beta) { display:none; }
    .ls-th-steps { flex-wrap:nowrap; overflow-x:auto; margin-top:8px; padding-bottom:2px; scrollbar-width:none; }
    .ls-th-steps::-webkit-scrollbar { display:none; }
    .ls-th-steps li { flex:0 0 auto; font-size:.78rem; }
    .ls-th-use { font-size:.84rem; }
    html body.lab-shell-page .lab-canvas h1 { font-size:1.08rem !important; }
    .lab-canvas [class*="hero"] p, .lab-canvas .us-intro p, .lab-canvas .lm .lede { font-size:.9rem !important; }
    .lab-canvas .hero-actions, .lab-canvas [class*="hero"] .actions { flex-direction:row !important; flex-wrap:wrap !important; }
    .lab-canvas .hero-actions > *, .lab-canvas [class*="hero"] .actions > * { width:auto !important; flex:0 0 auto !important; }
}

/* /tools inside the Lab: tabbed Pro workspace. */
.tools-tabs { display:none; }
.tools-tabbed .tools-tabs { position:sticky; top:calc(var(--ls-nav-h) + 48px); z-index:20; display:flex; gap:4px; margin:4px 0 18px; padding:5px; overflow-x:auto; border:1px solid var(--ls-line); border-radius:12px; background:rgba(4,12,9,.95); backdrop-filter:blur(8px); scrollbar-width:none; }
.tools-tabbed .tools-tabs::-webkit-scrollbar { display:none; }
.tools-tabbed .tools-tabs a { flex:0 0 auto; padding:9px 14px; border-radius:9px; color:var(--ls-muted); font-size:.88rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.tools-tabbed .tools-tabs a:hover { color:#fff; }
.tools-tabbed .tools-tabs a[aria-selected="true"] { color:#031009; background:linear-gradient(135deg,#2ccc67,#31e274); }
.tools-tabbed .tools-shell > section.hero-card, .tools-tabbed .qa-lab-callout, .tools-tabbed .journey-section,
.tools-tabbed .tools-shell > .hero .tool-note, .tools-tabbed .tools-shell > .hero > .hero-card:not(:first-child) { display:none !important; }
.tools-tabbed .tool-grid { display:grid; grid-template-columns:minmax(0,1fr) !important; }
.tools-tabbed .tool-grid > .tool-card[hidden], .tools-tabbed [hidden] { display:none !important; }
:root { --ls-bar-h:49px; }
@media (max-width:980px) { :root { --ls-bar-h:57px; } }
.tools-tabbed .tools-tabs { top:calc(var(--ls-nav-h) + var(--ls-bar-h)) !important; }
.tools-tabbed #target-jobs, .tools-tabbed #dataset-templates, .tools-tabbed .tool-card { scroll-margin-top:calc(var(--ls-nav-h) + var(--ls-bar-h) + 70px); }
/* The upgrade strip stays (funnel) but as a compact row, not a second hero. */
.tools-tabbed .tools-shell > .hero > .hero-card:first-child { padding:0 0 4px !important; border:0 !important; background:none !important; box-shadow:none !important; }
.tools-tabbed .tools-shell > .hero > .hero-card:first-child .eyebrow { display:none !important; }
/* The shell header already shows the three steps. */
.tools-tabbed .job-steps { display:none !important; }
