/* Lean browsing shares the site's paper, type and green navigation palette. */
.lean-browser,.lean-source-page{max-width:68rem;margin-inline:auto}
.lean-heading{max-width:57rem;margin:1.25rem 0 1.5rem}
.open-research .lean-heading h1{font-size:clamp(2.1rem,4.7vw,3.5rem);line-height:1.12;margin:.6rem 0 1rem;max-width:24ch}
.lean-heading .eyebrow{margin:0}
.lean-lede{font-size:1.1rem;line-height:1.65;max-width:49ch;margin:.8rem 0}
.lean-summary,.lean-library-note{color:var(--muted);font-size:.86rem}
.lean-summary span{padding-inline:.45rem}
.lean-playground-route{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem;margin:1.2rem 0 2rem;font-size:.83rem;color:var(--muted)}
.lean-playground-route .button{margin:0}
.lean-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem;margin:1.15rem 0 1.4rem;font-size:.88rem}
.lean-actions a{min-height:2.5rem;display:inline-flex;align-items:center;padding:.35rem 0}
.open-research .lean-actions .button{font-size:.85rem;min-height:2.6rem;padding:.45rem .9rem;margin:0}
.lean-scope{border:1px solid var(--line);background:var(--surface);border-radius:.25rem;margin:1rem 0 1.7rem;font-size:.88rem}
.lean-scope>summary{cursor:pointer;min-height:2.8rem;padding:.6rem .85rem;line-height:1.7}
.lean-badge{font-size:.78rem;font-weight:650;color:var(--green)}
.lean-scope-label{color:var(--muted);font-size:.78rem;margin-inline-start:1rem}
.lean-scope>div{padding:0 1rem 1rem;border-top:1px solid var(--line)}
.lean-scope p{margin:.65rem 0}
.lean-scope nav{gap:1rem}
.lean-directory-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1.5rem;margin:1.8rem 0 .8rem}
.open-research .lean-directory-heading h2{font-size:1.55rem;margin:0}
.lean-directory-heading h2>span,.lean-declarations summary>span{font:500 .8rem/1.4 system-ui,sans-serif;color:var(--muted);padding:.12rem .45rem;border:1px solid var(--line);border-radius:1rem;margin-inline-start:.35rem;vertical-align:middle}
.lean-source-location{font-size:.8rem;color:var(--muted);max-width:100%;margin:.5rem 0}
.lean-source-location summary{cursor:pointer;min-height:2rem;padding:.2rem 0}
.lean-source-location p{max-width:58ch;margin:.5rem 0}
.lean-source-location code{overflow-wrap:anywhere;white-space:normal}
.lean-filter{margin:1rem 0 .5rem}
.lean-filter[hidden]{display:none}
.lean-filter label{font-size:.82rem;margin:0 0 .4rem}
.lean-filter>div{display:flex;gap:.5rem;align-items:stretch}
.lean-filter input{flex:1;min-width:0;max-width:none;width:100%;font-size:.95rem}
.open-research .lean-filter button{margin:0;padding:.5rem .9rem;font-size:.85rem;background:var(--surface);color:var(--green);border:1px solid var(--control-edge,var(--line));border-radius:.2rem}
.lean-count{font-size:.78rem;color:var(--muted);margin:.6rem 0 1rem;min-height:1.5em}
.lean-files,.lean-works{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.lean-files>li{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding:.9rem .2rem;border-bottom:1px solid var(--line);margin:0}
.lean-files>li[hidden]{display:none}
.lean-file-name{min-width:0}
.lean-file-name a{font-weight:600;overflow-wrap:anywhere;text-decoration:none}
.lean-file-name a:hover{text-decoration:underline}
.lean-file-name a code{padding:0;background:transparent;font-size:.9rem;white-space:normal;overflow-wrap:anywhere}
.lean-file-folder{display:block;color:var(--muted);font-size:.75rem;line-height:1.5;margin-top:.2rem;overflow-wrap:anywhere}
.lean-file-meta{flex-shrink:0;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}
.lean-work-group{margin:2.3rem 0}
.open-research .lean-work-group h2{font-size:1.5rem;margin:0 0 .8rem}
.lean-works>li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem .2rem;border-bottom:1px solid var(--line);margin:0}
.lean-works>li>div{min-width:0;max-width:55rem}
.lean-work-label{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;font-weight:650;color:var(--muted);margin:0 0 .25rem}
.lean-works a{font-size:1rem;font-weight:550;text-decoration:none;line-height:1.5;overflow-wrap:anywhere}
.lean-works a:hover{text-decoration:underline}
.lean-work-coverage{display:block;font-size:.76rem;color:var(--muted);margin-top:.3rem}
.lean-work-count{flex-shrink:0;min-width:4rem;text-align:right;color:var(--muted);font-size:.78rem}
.open-research .lean-source-heading h1{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(1.5rem,3.3vw,2.4rem);max-width:none;overflow-wrap:anywhere;margin:.5rem 0 .6rem}
.lean-source-page .breadcrumbs{font-size:.8rem;margin-bottom:1.2rem}
.lean-source-heading .eyebrow{margin:0}
.lean-source-heading .reading-save{margin:.6rem 0 0}
.lean-source-page .lean-actions{margin:.8rem 0 .9rem}
.lean-source-page .lean-scope{margin-bottom:1rem}
.lean-current-path{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;max-width:none;margin:1rem 0 .15rem}
.lean-current-path code{font-size:.8rem;overflow-wrap:anywhere;background:transparent;padding:0}
.lean-current-path>span{font-size:.78rem;color:var(--muted)}
.lean-declarations{margin:1.1rem 0;border-block:1px solid var(--line)}
.lean-declarations summary{cursor:pointer;padding:.65rem .15rem;font-size:.88rem;font-weight:600;min-height:2.8rem}
.lean-declarations>p{font-size:.78rem;color:var(--muted)}
.lean-declarations ul{max-height:22rem;overflow:auto;padding:0 1.5rem 1rem}
.lean-declarations li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;margin:.55rem 0;overflow-wrap:anywhere}
.lean-declarations code{font-size:.82rem;white-space:normal;background:transparent;padding:0}
.lean-declarations li>span{font-size:.75rem;color:var(--muted)}
.lean-source-page .source-navigation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;font-size:.8rem;margin:1rem 0}
.lean-source-page .source-navigation>p{margin:0}
.lean-source-page .source-jump{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:.6rem;margin:0;max-width:29rem;padding:0;border:0;background:transparent}
.lean-source-page .source-jump label{font-size:.78rem;margin:0}
.lean-source-page .source-jump input{max-width:7rem;font-size:.85rem}
.lean-source-page .source-jump button{font-size:.8rem;padding:.4rem .7rem}
.lean-source-page .source-jump .status{grid-column:1/-1;margin:.25rem 0 0;font-size:.73rem}
.lean-source-page .source-lines{margin-top:.65rem;font-size:.85rem;line-height:1.7}
.lean-code-panel{min-width:0}
.lean-code-layout{position:relative}
.lean-code-skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.lean-code-skip:focus{top:0;left:0;width:auto;height:auto;clip-path:none;z-index:2;background:var(--surface);border:1px solid var(--green);padding:.5rem .7rem}
.lean-code-panel .lk{color:#70448d;font-weight:650}
.lean-code-panel .lt{color:#1e607b}
.lean-code-panel .lc{color:#53695c}
.lean-code-panel .ls{color:#8b3d36}
.lean-code-panel .ln{color:#825500}
.lean-outline .lean-declarations{margin:.8rem 0 1rem}
.lean-outline-filter{margin:.2rem .15rem .6rem}
.lean-outline-filter[hidden]{display:none}
.lean-outline-filter label{font-size:.76rem;margin:0 0 .35rem}
.lean-outline-filter>div{display:flex;align-items:stretch;gap:.35rem}
.lean-outline-filter input{min-width:0;width:100%;font-size:.83rem;padding:.45rem;min-height:2.4rem}
.open-research .lean-outline-filter button{margin:0;padding:.35rem .5rem;font-size:.75rem;background:var(--surface);color:var(--green);border:1px solid var(--control-edge,var(--line));min-height:2.4rem}
.lean-declarations .lean-declaration-count{margin:.4rem .15rem .6rem;font-size:.72rem;color:var(--muted)}
.lean-outline .lean-declarations ul{list-style:none;padding:0;margin:0;max-height:22rem;overflow:auto}
.lean-outline .lean-declarations li{display:block;margin:0;border-top:1px solid var(--line)}
.lean-outline .lean-declarations li[hidden]{display:none}
.lean-outline .lean-declarations li>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .5rem;text-decoration:none;min-height:2.8rem;padding:.55rem .2rem}
.lean-outline .lean-declarations li>a:hover{background:var(--surface)}
.lean-declaration-kind{grid-column:1;grid-row:1;font-size:.65rem;color:var(--muted);letter-spacing:.03em}
.lean-outline .lean-declarations code{grid-column:1;grid-row:2;min-width:0;font-size:.78rem;line-height:1.5}
.lean-declaration-line{grid-column:2;grid-row:2;align-self:center;color:var(--muted);font-size:.66rem;font-variant-numeric:tabular-nums}
.lean-declarations .lean-outline-note{font-size:.71rem;color:var(--muted);margin:.7rem .15rem;line-height:1.6}
@media(min-width:68rem){
  .lean-code-layout.has-lean-outline{display:grid;grid-template-columns:minmax(0,1fr) 16rem;gap:1.5rem;align-items:start;margin-top:1rem}
  .has-lean-outline .lean-code-panel{grid-column:1;grid-row:1}
  .lean-outline{grid-column:2;grid-row:1;position:sticky;top:1rem;min-width:0}
  .lean-outline .lean-declarations{margin:0;border-top:0}
  .lean-outline .lean-declarations summary{padding-top:.4rem;font-size:.82rem}
  .lean-outline .lean-declarations ul{max-height:calc(100vh - 17rem);max-height:calc(100dvh - 17rem)}
  .has-lean-outline .source-navigation{margin-top:0}
}
@media(forced-colors:active){.lean-code-panel .lk,.lean-code-panel .lt,.lean-code-panel .lc,.lean-code-panel .ls,.lean-code-panel .ln{color:CanvasText}}
@media(max-width:42rem){
  .lean-heading{margin-top:.7rem}
  .open-research .lean-heading h1{font-size:2.05rem}
  .lean-actions{gap:.2rem 1rem;font-size:.8rem}
  .lean-scope-label{display:block;margin:.1rem 0 0 1rem}
  .lean-files>li{align-items:flex-start;flex-direction:column;gap:.35rem;padding:.8rem .1rem}
  .lean-file-meta{font-size:.72rem}
  .lean-work-count{min-width:3.2rem;font-size:.72rem}
  .lean-works a{font-size:.94rem}
  .lean-source-page .source-navigation{align-items:flex-start;gap:.6rem}
  .lean-source-page .source-jump{display:block;width:100%;max-width:none}
  .lean-source-page .source-jump label{margin-bottom:.35rem}
  .lean-source-page .source-jump>div{flex-wrap:nowrap}
  .lean-source-page .source-lines{padding:.7rem .5rem;font-size:.78rem}
}
@media print{.lean-filter,.lean-actions,.lean-outline-filter{display:none}.lean-files>li[hidden]{display:flex!important}.lean-code-layout.has-lean-outline{display:block}.lean-outline{position:static}.lean-outline .lean-declarations ul{max-height:none;overflow:visible}.lean-outline li[hidden]{display:block!important}.lean-code-panel .lk,.lean-code-panel .lt,.lean-code-panel .lc,.lean-code-panel .ls,.lean-code-panel .ln{color:black}}

.lean-local-imports { margin: 1rem 0; }
.lean-local-imports nav { max-height: 22rem; overflow: auto; }
.lean-local-imports code { overflow-wrap: anywhere; white-space: normal; }
