/* Tile sheets (Alex 30 Oct 2026 13:44): the splash org chart becomes a sheet of small tiles, up to five across, styled like the
   home-page tiles; colour = theme within the vertical. Generated by build/biz_tiles.py. */
.stage.tiles-on #graph,.stage.tiles-on #labels,.stage.tiles-on #chart2d,.stage.tiles-on .back-start,.stage.tiles-on .zoom-controls,
.stage.tiles-on #mode-toggle,.stage.tiles-on .stage-meta,.stage.tiles-on #spin{display:none!important}
body:has(.stage.tiles-on) .toolbar-right{display:none}
.tile-sheet{position:absolute;inset:0;z-index:2;overflow:auto;padding:10px 12px 14px;box-sizing:border-box;background:var(--stage-bg,#F6F4EF)}
.ts-head{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;margin:0 0 9px;padding-right:44px}
.ts-sum{flex:1 1 100%;font-size:.74rem;color:var(--muted,#55606E);margin-bottom:2px}
.ts-head button{font:inherit;font-size:.68rem;line-height:1.5;border-radius:999px;padding:1px 8px;cursor:pointer;border:1px solid color-mix(in srgb,var(--c,#1F2F4F) 45%,#fff);background:#fff;color:#1F2F4F;display:inline-flex;align-items:center;gap:5px}
.ts-head .ts-th i{width:10px;height:10px;border-radius:3px;background:var(--c);display:inline-block}
.ts-head .ts-th b{font-weight:600;color:var(--c)}
.ts-head button.on{background:var(--c,#1F2F4F);color:#fff;border-color:var(--c,#1F2F4F)}
.ts-head .ts-th.on i{background:#fff}.ts-head .ts-th.on b{color:#fff}
.ts-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
@media (max-width:1250px){.ts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.ts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile2{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;text-decoration:none;background:var(--t);color:#1F2F4F;
  border:1px solid color-mix(in srgb,var(--c) 35%,#fff);box-shadow:0 1px 3px rgba(0,0,0,.12);transition:transform .12s,box-shadow .12s;container-type:inline-size}
.tile2:hover,.tile2:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.28);outline:3px solid #fff;outline-offset:-3px}
.tile2 .ban{background:var(--c);min-height:40px;display:flex;align-items:flex-end;padding:5px 7px;box-sizing:border-box}
.tile2 .nm{color:#fff;font-weight:600;font-size:clamp(.7rem,8.5cqi,.84rem);line-height:1.15;overflow-wrap:anywhere}
.tile2 .bd{display:flex;flex-direction:column;gap:3px;padding:5px 7px 7px;flex:1}
.tile2 .th{font-size:.62rem;line-height:1.2;opacity:.85}
.tile2 .ks{display:flex;flex-wrap:wrap;gap:2px}
.tile2 .ks span{font-size:.62rem;padding:0 6px;border-radius:999px;background:#fff;color:#1F2F4F;border:1px solid color-mix(in srgb,var(--c) 45%,#fff)}
.tile2 .go{margin-top:auto;align-self:flex-start;font-size:.64rem;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--c);color:#fff}
.tile2.hide{display:none}
.tile2.hit{outline:3px solid var(--c);outline-offset:1px}
.ts-none{font-size:.8rem;color:var(--muted,#55606E)}
html.dark .tile-sheet{background:var(--stage-bg,#0B1220)}
html.dark .tile2{background:#14203A;color:#E9ECF2;border-color:#2E3D5C;border-left:5px solid var(--t)}
html.dark .tile2 .ks span{background:#0E1729;color:#E9ECF2;border-color:#2E3D5C}
html.dark .tile2 .go{background:var(--t);color:#1F2F4F}
html.dark .ts-head button{background:#0E1729;color:#E9ECF2;border-color:#2E3D5C}
html.dark .ts-head .ts-th b{color:var(--t)}
html.dark .ts-head button.on{background:var(--t,#C9D2E0);color:#1F2F4F}
html.dark .ts-head .ts-th.on b{color:#1F2F4F}
/* listing pages: <page>/t/<group>/ */
.tile-list{max-width:1280px;margin:0 auto;padding:14px 16px 8px}
.tile-list .ls-back{margin:0 0 10px}
.tile-list .ls-sec{margin:0}
.tile-list h2{display:flex;align-items:center;gap:8px}
.tile-list .ls-sw{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--c)}
.ls-table td{vertical-align:top;font-size:.8rem}
.ls-table td.nm a{font-weight:600}
.ls-table .sub{display:block;font-size:.68rem;color:var(--muted,#55606E)}
.ls-table td.lk a{white-space:nowrap}
.ls-table td.lk{max-width:360px}
.ls-sibs{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0 6px}
.ls-chip{font-size:.7rem;padding:2px 9px;border-radius:999px;text-decoration:none;background:var(--t);color:#1F2F4F;border:1px solid color-mix(in srgb,var(--c) 40%,#fff)}
.ls-chip b{color:var(--c)}
.ls-chip.on{background:var(--c);color:#fff}.ls-chip.on b{color:#fff}
html.dark .ls-chip{background:#14203A;color:#E9ECF2;border-color:#2E3D5C;border-left:4px solid var(--t)}
html.dark .ls-chip b{color:var(--t)}
html.dark .ls-chip.on{background:var(--t);color:#1F2F4F}html.dark .ls-chip.on b{color:#1F2F4F}
.site-header h1 .lozenge a.brand-sub{color:inherit;text-decoration:none}
.site-header h1 .lozenge a.brand-sub:hover{text-decoration:underline}
/* tile photos (build/biz_tilephotos.py): the photo fills the tile, the coloured name button sits on it, a dark scrim keeps the text readable */
.tile2.has-ph{position:relative;min-height:96px;background-color:var(--c);background-size:cover;background-position:center;background-repeat:no-repeat;
  color:#fff;border:1px solid color-mix(in srgb,var(--c) 60%,#000)}
.tile2.has-ph::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.18) 40%,rgba(0,0,0,.66) 100%)}
.tile2.has-ph .ban{position:relative;z-index:1;background:none;min-height:0;padding:7px 7px 0;align-items:flex-start}
.tile2.has-ph .nm{background:var(--c);border-radius:8px;padding:.08em .45em;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.tile2.has-ph .bd{position:relative;z-index:1;justify-content:flex-end;padding:6px 7px 7px}
.tile2.has-ph .th{color:#fff;opacity:1;text-shadow:0 1px 2px rgba(0,0,0,.8)}
.tile2.has-ph .ks span{background:rgba(255,255,255,.92);color:#1F2F4F;border:0}
.tile2.has-ph .go{display:none}
.tile2.has-ph.hit{outline:3px solid var(--c);outline-offset:2px}
html.dark .tile2.has-ph{background-color:var(--c);color:#fff;border:1px solid #2E3D5C}
html.dark .tile2.has-ph::before{background:linear-gradient(180deg,rgba(0,0,0,.22) 0%,rgba(0,0,0,.30) 40%,rgba(0,0,0,.74) 100%)}
html.dark .tile2.has-ph .ks span{background:rgba(14,23,41,.9);color:#E9ECF2}
.ts-cred{font-size:.7rem;margin-right:6px;color:inherit;text-decoration:underline;text-underline-offset:2px}
.tp-credit{max-width:1280px;margin:4px auto 10px;padding:0 16px;font-size:.72rem;color:var(--muted,#55606E)}
/* 40% panel (Alex 30 Oct 17:08, as the Universities tiles): from just below the name button to the bottom of the tile, over the
   counter pills, in the tile's own colour at 40% so the photo stays partly visible; no blur. The scrim above is cut back so it is not doubled. */
.tile2.has-ph::before{background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,0) 45%)}
html.dark .tile2.has-ph::before{background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.06) 45%)}
.tile2.has-ph .ban{padding-bottom:6px}
.tile2.has-ph .bd{flex:1;margin-top:0;background:rgba(0,0,0,.4);background:color-mix(in srgb,var(--c) 40%,transparent)}

/* Round 6 (30 Oct 17:24): Key facts line, facet tag, expandable profile panel and facet filter on listing pages */
.ls-table .r6-kf{display:block;margin-top:4px;font-size:.86em;line-height:1.35}
.ls-table .r6-kf b{font-weight:700;margin-right:4px}
.ls-table .r6-facet{display:inline-block;margin-left:6px}
.ls-table details.r6-prof{margin-top:6px;font-size:.86em}
.ls-table details.r6-prof summary{cursor:pointer;font-weight:700;color:var(--c)}
html.dark .ls-table details.r6-prof summary{color:inherit;text-decoration:underline}
.ls-table details.r6-prof dl{margin:6px 0 0;max-height:320px;overflow:auto;padding-right:6px}
.ls-table details.r6-prof dt{font-weight:700;margin-top:4px}
.ls-table details.r6-prof dd{margin:0;overflow-wrap:anywhere}
.r6-ff{margin:0 0 8px}.r6-ff select{font:inherit;padding:3px 6px;border-radius:6px}

/* Labs Round 7 (30 Oct 2026): models-and-products strip, version chains, profile sources, release timeline */
.r7-tl-link{margin-left:auto;font-size:12.5px;font-weight:600;color:inherit;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.r7-mp{margin-top:6px;font-size:12.5px}
.r7-mp summary{cursor:pointer;font-weight:600}
.r7-mp ol{margin:6px 0 0;padding-left:18px;max-height:340px;overflow:auto}
.r7-mp li{margin:0 0 5px}
.r7-mp .d{font-variant-numeric:tabular-nums;opacity:.75}
.r7-mp .st{display:inline-block;padding:0 6px;border-radius:9px;background:var(--t,#e8ecf3);color:#1d2433;font-size:11px}
.r7-mp .w{display:block;opacity:.85}
.r7-chains{margin:4px 0;display:flex;flex-wrap:wrap;gap:4px 10px}
.r7-chains span{border-left:3px solid var(--c,#1F2F4F);padding-left:6px}
.r7-chain,.r7-by{display:block;margin-top:4px;font-size:12.5px}
.r7-psrc{margin:2px 0 0;padding-left:18px;font-size:12px}
.r7-tl .r7-axis{position:relative;height:18px;margin:8px 0 2px 210px;font-size:11px;opacity:.75}
.r7-tl .r7-axis span{position:absolute;transform:translateX(-2px)}
.r7-tl .lane{display:flex;align-items:center;min-height:22px;border-top:1px solid rgba(127,127,127,.18)}
.r7-tl .ln{flex:0 0 210px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px;color:inherit}
.r7-tl .ln b{font-weight:600;opacity:.6}
.r7-tl .track{position:relative;flex:1;height:22px;background:repeating-linear-gradient(90deg,rgba(127,127,127,.12) 0 1px,transparent 1px 10%)}
.r7-tl .dot{position:absolute;top:6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#1F2F4F;border:1px solid #fff;opacity:.85}
.r7-tl .dot:hover{transform:scale(1.5);opacity:1;z-index:2}
html.dark .r7-tl .dot{background:#C9D2E0;border-color:#111}
.r7-off{margin-top:12px;font-size:12.5px}
/* Alex 31 Oct 2026 09:30 (pt60u): the record counters are gone from the tiles, so photo tiles are 96px tall (was 116px, which
   left room for the counter pill) and a tile body with nothing left in it takes no padding. */
.tile2.has-ph .bd:not(:has(.th)){padding:0}
/* Labs Round 8 (31 Oct 2026): tile-page introduction, context facts and key papers; lab cards: why it is here, selected papers, key facts and news */
.r8-intro{margin:6px 0 14px;padding:10px 14px;border-left:4px solid var(--c,#1F2F4F);background:color-mix(in srgb,var(--t,#C9D2E0) 35%,transparent);border-radius:6px;font-size:14px;line-height:1.5}
.r8-intro p{margin:0 0 6px}.r8-intro h3{font-size:13px;margin:10px 0 4px;text-transform:uppercase;letter-spacing:.04em}
.r8-intro ol,.r8-intro ul{margin:0;padding-left:20px}.r8-intro li{margin:3px 0;overflow-wrap:anywhere}
.r8-intro .m,.r8-pap .m,.r8-kfn .m{opacity:.75;font-size:.9em}
.r8-intro .w,.r8-pap .w{display:block;font-size:.92em;opacity:.9}
.r8-q{display:none}.r8-facts li:hover .r8-q,.r8-facts li:focus-within .r8-q{display:block;font-style:italic;font-size:.9em;opacity:.85;quotes:"“" "”"}
.r8-why,.r8-stl{display:block;margin-top:4px;font-size:12.5px}
.r8-hist{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;font-size:11px;background:#6b6b6b;color:#fff;vertical-align:middle}
.r8-read{display:inline-block;margin-top:4px;font-size:12.5px;font-weight:600}
.ls-table details.r8-pap,.ls-table details.r8-kfn{margin-top:6px;font-size:.86em}
.ls-table details.r8-pap summary,.ls-table details.r8-kfn summary{cursor:pointer;font-weight:700;color:var(--c)}
html.dark .ls-table details.r8-pap summary,html.dark .ls-table details.r8-kfn summary{color:inherit;text-decoration:underline}
.r8-pap ol,.r8-kfn ul{margin:4px 0 0;padding-left:18px;max-height:340px;overflow:auto}.r8-pap li,.r8-kfn li{margin:3px 0;overflow-wrap:anywhere}
.r8-kfn dl{margin:6px 0 0}.r8-kfn dt{font-weight:700;margin-top:4px}.r8-kfn dd{margin:0;overflow-wrap:anywhere}
.r8-joint,.r8-one{display:inline-block;margin-left:5px;padding:0 5px;border-radius:999px;font-size:10.5px;border:1px solid currentColor;opacity:.8}
.r8-src{font-size:.88em;margin-left:4px}
