/* ============================================================================
   Barker Lab — shared GitHub Pages theme  (v0.1 prototype)
   Design tokens + layout lifted verbatim from Plant_response_to_radiation,
   plus an optional toggleable left "map" rail (document map + site map).
   Self-contained, no build step, no framework.
   ========================================================================== */

:root{
  --bg:#ffffff; --fg:#1a2230; --muted:#5a6473; --line:#e5e9f0;
  --card:#f7f9fc; --accent:#3B6EA5; --accent2:#3FB6A8; --grey:#8A8A8A;
  --maxw:960px; --rail:288px;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0f141b; --fg:#e6ebf2; --muted:#9aa6b6; --line:#232c39;
         --card:#161d27; --accent:#6ea3d8; --accent2:#54c9ba; }
}
/* Manual light/dark override — the theme toggle sets html[data-theme]. */
html[data-theme="light"]{
  --bg:#ffffff; --fg:#1a2230; --muted:#5a6473; --line:#e5e9f0;
  --card:#f7f9fc; --accent:#3B6EA5; --accent2:#3FB6A8; color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#0f141b; --fg:#e6ebf2; --muted:#9aa6b6; --line:#232c39;
  --card:#161d27; --accent:#6ea3d8; --accent2:#54c9ba; color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* ---- content design system (unchanged from the reference page) ---- */
header{border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(59,110,165,.10),transparent)}
header .wrap{padding:56px 20px 40px}
.eyebrow{color:var(--accent);font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;font-size:.78rem;margin:0 0 10px}
h1{font-size:2.05rem;line-height:1.2;margin:0 0 12px;letter-spacing:-.01em}
.lede{font-size:1.12rem;color:var(--muted);margin:0 0 22px;max-width:66ch}
.meta{color:var(--muted);font-size:.92rem;margin:0 0 20px}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-block;padding:9px 16px;border-radius:8px;font-weight:600;
  font-size:.92rem;border:1px solid var(--line);background:var(--card);color:var(--fg)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{text-decoration:none;filter:brightness(1.06)}
section{padding:44px 0;border-bottom:1px solid var(--line)}
h2{font-size:1.5rem;margin:0 0 6px;letter-spacing:-.01em;scroll-margin-top:20px}
h2 .n{color:var(--accent);font-weight:700;margin-right:.5rem}
.sub{color:var(--muted);margin:0 0 24px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px}
.card h3{margin:0 0 6px;font-size:1.02rem}
.card p{margin:0;color:var(--muted);font-size:.93rem}
.stat{font-size:1.9rem;font-weight:700;line-height:1;margin:2px 0 8px;color:var(--accent)}
figure{margin:26px 0 0;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:14px}
figure img{width:100%;height:auto;border-radius:6px;display:block;background:#fff}
figcaption{color:var(--muted);font-size:.88rem;margin-top:10px}
.tag{display:inline-block;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;
  background:rgba(63,182,168,.14);color:var(--accent2);margin-left:8px;vertical-align:middle}
ul.clean{padding-left:1.15rem;margin:0}
ul.clean li{margin:.35rem 0}
table{width:100%;border-collapse:collapse;font-size:.92rem;margin-top:8px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600}
code{background:var(--card);border:1px solid var(--line);border-radius:5px;
  padding:1px 6px;font-size:.86em}
footer{padding:32px 0 48px;color:var(--muted);font-size:.9rem}
.disc{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent2);
  border-radius:8px;padding:12px 16px;color:var(--muted);font-size:.9rem;margin-top:18px}
/* COSE brand link in the footer, next to the author name */
.cose-foot{display:inline-flex;align-items:center;gap:6px;vertical-align:middle;margin-right:9px;font-weight:600}
.cose-foot img{height:20px;width:20px;display:block;border-radius:5px}
.cose-foot:hover{text-decoration:none;filter:brightness(1.05)}

/* ============================================================================
   OPTIONAL LEFT MAP RAIL  — everything below is additive.
   With JS disabled or the rail closed, the page renders exactly as before.
   ========================================================================== */

/* Top-left bar: COSE brand + map toggle */
.topbar{position:fixed;top:12px;left:12px;z-index:40;display:flex;align-items:center;gap:8px}
.cose-brand{display:inline-flex;align-items:center;line-height:0}
.cose-brand img{height:30px;width:30px;display:block;border-radius:7px}
.cose-brand:hover{filter:brightness(1.05)}

/* Toggle button */
.map-toggle{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:8px;cursor:pointer;
  border:1px solid var(--line);background:var(--card);color:var(--fg);
  font:600 .85rem/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  box-shadow:0 1px 2px rgba(0,0,0,.04)}
.map-toggle:hover{filter:brightness(.98)}
.map-toggle .bars{display:inline-block;width:16px;height:12px;position:relative}
.map-toggle .bars::before,.map-toggle .bars::after,.map-toggle .bars span{
  content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor}
.map-toggle .bars::before{top:0}.map-toggle .bars span{top:5px}.map-toggle .bars::after{top:10px}
.map-toggle .lbl{display:none}
@media (min-width:900px){ .map-toggle .lbl{display:inline} }
.cose-theme-btn{display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:34px;border-radius:8px;cursor:pointer;
  border:1px solid var(--line);background:var(--card);color:var(--fg);
  box-shadow:0 1px 2px rgba(0,0,0,.04)}
.cose-theme-btn:hover{filter:brightness(.98)}
.cose-theme-btn svg{display:block}
@media (min-width:1180px){
  body.map-open .cose-theme-btn{background:transparent;border-color:transparent;box-shadow:none}
}

/* The rail */
.sitebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--rail);z-index:39;
  background:var(--card);border-right:1px solid var(--line);
  transform:translateX(-100%);transition:transform .22s ease;
  overflow-y:auto;padding:64px 0 24px}
body.map-open .sitebar{transform:translateX(0)}
.sitebar .cose-panel{padding:14px 20px}
.sitebar h4{margin:0 0 4px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.sitebar .cose-switch{display:flex;gap:4px;margin:0 20px 6px;
  background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:3px}
.sitebar .cose-switch button{flex:1;border:0;background:transparent;color:var(--muted);
  font:600 .82rem/1 inherit;padding:7px 6px;border-radius:6px;cursor:pointer}
.sitebar .cose-switch button[aria-selected="true"]{background:var(--accent);color:#fff}

/* Document map (on-this-page) */
.docmap{list-style:none;margin:6px 0 0;padding:0}
.docmap li{margin:0}
.docmap a{display:block;padding:6px 20px 6px 20px;color:var(--muted);
  font-size:.9rem;border-left:2px solid transparent;line-height:1.35}
.docmap a:hover{text-decoration:none;color:var(--fg)}
.docmap a.cose-active{color:var(--accent);border-left-color:var(--accent);
  background:linear-gradient(90deg,rgba(59,110,165,.08),transparent)}
.docmap a.lvl-3{padding-left:34px;font-size:.85rem}

/* Site map (all projects) */
.sitemap{list-style:none;margin:6px 0 0;padding:0}
.sitemap li{margin:0}
.sitemap a{display:block;padding:9px 20px;color:var(--fg);font-size:.9rem;line-height:1.25}
.sitemap a:hover{text-decoration:none;background:rgba(59,110,165,.06)}
.sitemap a.cose-current{border-left:2px solid var(--accent2);background:rgba(63,182,168,.08)}
.sitemap a small{display:block;color:var(--muted);font-size:.78rem;font-weight:400;margin-top:2px}
.sitemap .cose-group{padding:14px 20px 4px;font-size:.7rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);font-weight:700}

/* Scrim for mobile overlay mode */
.map-scrim{position:fixed;inset:0;background:rgba(10,15,22,.38);z-index:38;
  opacity:0;visibility:hidden;transition:opacity .2s}
body.map-open .map-scrim{opacity:1;visibility:visible}

/* On wide screens, open rail pushes content instead of overlaying */
@media (min-width:1180px){
  body.map-open .page{margin-left:var(--rail)}
  body.map-open .map-scrim{display:none}
  .map-toggle{background:transparent;border-color:transparent;box-shadow:none}
}
@media (prefers-reduced-motion:reduce){
  .sitebar{transition:none}.map-scrim{transition:none}
}

/* draggable resize handle on the rail edge */
.cose-resize{position:absolute;top:0;right:0;bottom:0;width:12px;cursor:ew-resize;z-index:3;display:flex;align-items:center;justify-content:flex-end}
.cose-resize::before{content:"";width:4px;height:38px;margin-right:1px;border-radius:3px;background:var(--line);transition:background .15s,height .15s}
.cose-resize:hover::before,.cose-resize:active::before{background:var(--accent);height:56px}

/* "all projects" hub link button */
.cose-hub-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:34px;
  border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--fg);
  box-shadow:0 1px 2px rgba(0,0,0,.04);text-decoration:none}
.cose-hub-btn:hover{filter:brightness(.98);text-decoration:none}
.cose-hub-btn svg{display:block}
@media (min-width:1180px){ body.map-open .cose-hub-btn{background:transparent;border-color:transparent;box-shadow:none} }
