/* Kestrel Lab: the same design system as the app (/ds), laid out denser. */
body.lab{margin:0;font:400 15px/1.5 var(--font-ui);}
#lab a:not([class]){color:var(--text);}
#lab a:not([class]):hover{color:var(--accent-ink);}
.lab-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;padding:var(--s-3) var(--s-5);background:var(--inverse);color:var(--on-inverse);}
.lab-top .k-brand,.lab-top a{color:var(--on-inverse);}
.lab-word{font:800 20px var(--font-display);letter-spacing:-.03em;}
.lab-word b{color:var(--accent);}
.lab-nav{display:flex;gap:var(--s-1);flex:1;flex-wrap:wrap;}
.lab-nav a{font:600 14px var(--font-ui);text-decoration:none;color:color-mix(in srgb,var(--on-inverse) 68%,transparent);padding:7px 14px;border-radius:var(--r-pill);}
.lab-nav a:hover{background:color-mix(in srgb,var(--on-inverse) 12%,transparent);color:var(--on-inverse);}
.lab-nav a.on{background:var(--on-inverse);color:var(--inverse);}
.lab-top .k-switch{background:color-mix(in srgb,var(--on-inverse) 14%,transparent);}
.lab-top .k-switch a{color:color-mix(in srgb,var(--on-inverse) 70%,transparent);}
.lab-top .k-switch a[aria-current="page"]{background:var(--on-inverse);color:var(--inverse);}
.lab-top .k-btn.accent{color:var(--on-accent);}
#lab{max-width:1120px;margin:0 auto;padding:var(--s-5) var(--s-5) var(--s-7);}
.lab-foot{max-width:1120px;margin:0 auto;padding:var(--s-4) var(--s-5) var(--s-7);border-top:1px solid var(--line);font-size:13px;color:var(--text-2);}

.lab-hero{display:grid;gap:var(--s-5);margin-bottom:var(--s-6);}
@media (min-width:900px){.lab-hero{grid-template-columns:1.5fr 1fr;align-items:end;}}
.lab-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);}
.lab-stats div{padding:var(--s-4);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-1);}
.lab-stats b{display:block;font:800 32px/1 var(--font-display);letter-spacing:-.04em;}
.lab-stats span{font:600 12px var(--font-ui);color:var(--text-2);}
.lab-filters{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center;margin:var(--s-2) 0 var(--s-4);}
.lab-filters .k-input{max-width:340px;border-radius:var(--r-pill);}
.lab-seg{display:inline-flex;gap:2px;padding:4px;background:var(--surface-2);border-radius:var(--r-pill);}
.lab-seg button{border:0;border-radius:var(--r-pill);background:transparent;color:var(--text-2);height:34px;padding:0 var(--s-4);font:600 13px var(--font-ui);cursor:pointer;}
.lab-seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1);}

.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-4);}
.lab-card,.lab-card-repo{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--s-4) var(--s-5) var(--s-5);text-decoration:none;color:var(--text);transition:transform var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease);}
.lab-card:hover,.lab-card-repo:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);}
.lab-card h3{margin:0;font-size:19px;}
.lab-card .by{font-size:13px;color:var(--text-2);margin:2px 0 var(--s-2);}
.lab-card p{font-size:14px;color:var(--text-2);margin:6px 0 var(--s-3);}
.lab-meta{display:flex;gap:6px;flex-wrap:wrap;}
.lab-chip{display:inline-flex;align-items:center;height:24px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font:600 11.5px var(--font-ui);white-space:nowrap;}
.lab-chip.red{background:var(--accent-subtle);color:var(--accent-ink);}
.lab-chip.ink{background:var(--inverse);color:var(--on-inverse);}
.lab-chip.published{background:var(--positive-subtle);color:var(--positive);}
.lab-chip.private{background:var(--danger-subtle);color:var(--danger);}
.lab-chip.builtin{background:var(--accent-subtle);color:var(--accent-ink);}
.lab-nums{display:flex;gap:var(--s-4);font-size:12.5px;color:var(--text-2);margin-top:var(--s-3);}

/* repo-style card pieces */
.lab-card-repo{padding:0;overflow:hidden;}
.lab-card-repo .repo-header{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-4) var(--s-4) var(--s-3);}
.lab-card-repo .repo-avatar{width:36px;height:36px;border-radius:var(--r-sm);background:var(--inverse);color:var(--on-inverse);display:grid;place-items:center;font:700 12px var(--font-ui);flex:none;}
.lab-card-repo .repo-main{flex:1;min-width:0;}
.lab-card-repo .repo-name{display:block;font:700 15px var(--font-display);margin:0 0 4px;}
.lab-card-repo .repo-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:4px;}
.lab-card-repo .repo-tag{font:600 11px var(--font-ui);padding:2px 9px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);white-space:nowrap;}
.lab-card-repo .repo-tag.task{background:var(--accent-subtle);color:var(--accent-ink);}
.lab-card-repo .repo-tag.kind{background:var(--info-subtle);color:var(--info);}
.lab-card-repo .repo-desc{font-size:13px;color:var(--text-2);margin:0;padding:0 var(--s-4) var(--s-3);line-height:1.4;}
.lab-card-repo .repo-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);}
.lab-card-repo .repo-stats{display:flex;gap:var(--s-4);font-size:12px;color:var(--text-2);}
.lab-card-repo .repo-stats b{color:var(--text);font-weight:700;}

/* pages and panels */
.lab-page{display:grid;gap:var(--s-5);}
@media (min-width:900px){.lab-page{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;}}
.lab-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--s-5);}
.lab-panel + .lab-panel{margin-top:var(--s-4);}
.lab-panel h2{margin:0 0 var(--s-2);font-size:20px;}
.lab-readme,.lab-model-readme{font-size:15px;line-height:1.6;}
.lab-readme h1,.lab-readme h2,.lab-readme h3,.lab-model-readme h1,.lab-model-readme h2,.lab-model-readme h3{margin:var(--s-5) 0 var(--s-2);}
.lab-model-readme p{margin:0 0 var(--s-4);color:var(--text-2);}
.lab-readme pre,.lab-code{font:12.5px/1.5 var(--font-mono);background:var(--surface-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);overflow-x:auto;white-space:pre;}
.lab-readme code{font:12.5px var(--font-mono);background:var(--surface-2);padding:1px 6px;border-radius:var(--r-xs);}
.lab-kv{display:grid;grid-template-columns:auto 1fr;gap:6px var(--s-4);font-size:14px;}
.lab-kv dt{color:var(--text-2);font-weight:600;}
.lab-kv dd{margin:0;word-break:break-word;}
.lab-result{font:800 40px var(--font-display);letter-spacing:-.04em;margin:var(--s-3) 0 2px;font-variant-numeric:tabular-nums;}
.lab-prs{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--s-2);align-items:end;}
.lab-tabs,.lab-model-tabs{display:inline-flex;gap:2px;padding:4px;background:var(--surface-2);border-radius:var(--r-pill);margin:4px 0 var(--s-4);overflow-x:auto;max-width:100%;}
.lab-tabs button,.lab-model-tabs button{border:0;border-radius:var(--r-pill);background:transparent;padding:0 var(--s-4);height:34px;font:600 13px var(--font-ui);color:var(--text-2);cursor:pointer;white-space:nowrap;}
.lab-tabs button.on,.lab-model-tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1);}
table.lab-table{width:100%;border-collapse:collapse;font-size:14px;}
.lab-table th{text-align:left;font:600 12px var(--font-ui);color:var(--text-2);border-bottom:1px solid var(--line);padding:var(--s-2) 6px;}
.lab-table td{border-bottom:1px solid var(--line);padding:var(--s-3) 6px;vertical-align:top;}

/* landing + model page header */
.lab-landing{max-width:900px;margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-8);}
.lab-landing .lab-section{margin-bottom:var(--s-7);}
.lab-landing .lab-section h2{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 var(--s-4);font-weight:800;}
.lab-landing .lab-section p{font-size:1.0625rem;line-height:1.6;color:var(--text-2);margin:0 0 var(--s-4);}
.lab-landing .lab-feature-grid{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:var(--s-5);}
.lab-landing .lab-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--s-5);}
.lab-landing .lab-feature h3{margin:0 0 var(--s-2);font-size:1.125rem;}
.lab-landing .lab-feature p{font-size:.9375rem;margin:0;}
.lab-model-header{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-1);padding:var(--s-5);margin-bottom:var(--s-5);}
.lab-model-header .lab-breadcrumbs{font:600 13px var(--font-ui);color:var(--text-2);margin-bottom:var(--s-2);}
.lab-model-header .lab-breadcrumbs a{color:var(--text-2);text-decoration:none;}
.lab-model-header h1{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 var(--s-3);font-weight:800;}
.lab-model-header .lab-model-meta{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-4);}
.lab-model-header .lab-model-actions{display:flex;gap:var(--s-2);flex-wrap:wrap;}
.lab-model-sidebar{display:flex;flex-direction:column;gap:var(--s-4);}
.lab-model-sidebar .lab-panel{position:sticky;top:var(--s-5);}
.lab-download-btn{display:inline-flex;align-items:center;gap:var(--s-2);height:44px;padding:0 var(--s-5);border:0;border-radius:var(--r-pill);background:var(--inverse);color:var(--on-inverse);font:600 15px var(--font-ui);cursor:pointer;text-decoration:none;}
@media (max-width:899px){
  .lab-top{padding:var(--s-3) var(--s-4);gap:var(--s-3);}
  #lab{padding:var(--s-4) var(--s-4) var(--s-7);}
  .lab-model-header .lab-model-actions .k-btn{flex:1 1 auto;}
  .lab-model-header .lab-model-actions .k-btn.primary{flex-basis:100%;}
}

/* model page: lineage tree, workbench list, details */
.lab-tree{display:grid;gap:var(--s-3);}
.lab-tree-in{display:grid;gap:var(--s-3);margin-left:var(--s-5);padding-left:var(--s-4);border-left:2px solid var(--line);}
.lab-lin{display:block;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);text-decoration:none;}
a.lab-lin:hover{background:var(--accent-subtle);}
.lab-lin.now{background:var(--inverse);color:var(--on-inverse);}
.lab-lin.now .k-small{color:inherit;opacity:.7;}
.lab-lin.root{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line);}
.lab-pick{display:grid;gap:var(--s-1);margin:var(--s-3) 0;}
.lab-pick .k-check{margin:0;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);}
.lab-pick .k-check:hover{background:var(--surface-2);}
body.lab details summary{cursor:pointer;margin:var(--s-3) 0 0;}
body.lab .lab-stats{margin:var(--s-3) 0;}

.lab-top .k-switch{margin-left:auto;}
@media (max-width:899px){
  .lab-top{gap:var(--s-2) var(--s-3);padding:var(--s-3) var(--s-4);}
  .lab-nav{order:5;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--s-4));padding:0 var(--s-4);}
  .lab-nav::-webkit-scrollbar{display:none;}
  .lab-nav a{white-space:nowrap;}
  .lab-cta{display:none;}
}
@media (min-width:900px){
  .lab-nav-new{display:none;}
  .lab-top .k-switch{margin-left:0;}
}

.lab-page > *{min-width:0;}
.lab-model-header .lab-model-actions .k-btn{height:40px;padding:0 var(--s-4);font-size:14px;}
.lab-tabs,.lab-model-tabs{scrollbar-width:none;}
.lab-tabs::-webkit-scrollbar,.lab-model-tabs::-webkit-scrollbar{display:none;}
.lab-foot a{color:var(--text);}
.lab-dialog-seg,.k-dialog .lab-seg{margin:var(--s-3) 0;}
.lab-table td:nth-child(2){white-space:nowrap;}
.lab-intro{padding-top:var(--s-4);}
.lab-display{font-size:clamp(38px,8vw,80px);margin:var(--s-4) 0 var(--s-4);}
.lab-landing{max-width:1000px;}
.lab-landing .k-browser{margin-bottom:var(--s-7);}
a.lab-feature{display:block;text-decoration:none;color:var(--text);transition:transform var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease);}
a.lab-feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);}
