[hidden]{display:none!important}

/* Layout: library app — progress band up top, category rail left, grouped file list right; rail becomes a chip strip on phones */
:root{
  --bg:#FAFAFA; --surface:#FFFFFF; --ink:#1D1D1D; --ink-2:rgba(29,29,29,.66); --ink-3:rgba(29,29,29,.45);
  --line:#E1DFDD; --line-2:#ECEAE8; --accent:#1B3747; --accent-soft:#C3D3D7; --brand:#7597A0;
  --chip:#EFEDEB; --k4:#DEAC90; --k4-ink:#523823; --ok:#5E6E4F; --ok-bg:#E3E9DC; --wait:#8A6B2E; --wait-bg:#F3E9D3; --flag:#8E3F2A; --flag-bg:#F6E6DE; --flag-line:#E3C2B2;
  --font:"Aeonik Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:8px; --r-card:12px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#12222C; --surface:#182C38; --ink:#F0F2F2; --ink-2:rgba(240,242,242,.7); --ink-3:rgba(240,242,242,.48);
  --line:#2A4352; --line-2:#21394A; --accent:#C3D3D7; --accent-soft:#2A4A5B; --brand:#9CB8C0;
  --chip:#21394A; --k4:#7A563F; --k4-ink:#F6DCCB; --ok:#C9D8B8; --ok-bg:#2F4031; --wait:#EBD2A2; --wait-bg:#4A3E25; --flag:#F1B9A4; --flag-bg:#3F2A26; --flag-line:#6A4238; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#12222C; --surface:#182C38; --ink:#F0F2F2; --ink-2:rgba(240,242,242,.7); --ink-3:rgba(240,242,242,.48);
  --line:#2A4352; --line-2:#21394A; --accent:#C3D3D7; --accent-soft:#2A4A5B; --brand:#9CB8C0;
  --chip:#21394A; --k4:#7A563F; --k4-ink:#F6DCCB; --ok:#C9D8B8; --ok-bg:#2F4031; --wait:#EBD2A2; --wait-bg:#4A3E25; --flag:#F1B9A4; --flag-bg:#3F2A26; --flag-line:#6A4238; color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1280px;margin:0 auto;padding-inline:clamp(16px,4vw,40px);padding-block:28px 64px}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
h1{font-weight:400;letter-spacing:-.03em;font-size:clamp(34px,5.4vw,60px);line-height:1.02;margin:6px 0 0;text-wrap:balance}
header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.links{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn:hover{border-color:var(--ink-3)}
.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* progress */
.progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;padding-block:24px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;min-width:0}
.pcard .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pct{font-size:40px;letter-spacing:-.03em;font-weight:400;font-variant-numeric:tabular-nums;line-height:1}
.gb{font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:14px;text-align:right}
.bar{height:8px;border-radius:99px;background:var(--line-2);overflow:hidden;margin:14px 0 10px}
.bar i{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .6s}
.eta{font-size:13.5px;color:var(--ink-2)}
.stamp{font-size:12.5px;color:var(--ink-3);margin-top:-8px;padding-bottom:18px}
/* layout */
.main{display:grid;grid-template-columns:250px minmax(0,1fr);gap:32px;align-items:start}
.rail{position:sticky;top:calc(env(safe-area-inset-top,0px) + 16px);max-height:calc(100vh - 32px);overflow:auto;padding-right:4px}
.rail h3{margin:18px 0 6px}
.rail button{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:8px;width:100%;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--ink-2)}
.rail button:hover{background:var(--chip);color:var(--ink)}
.rail button[aria-pressed="true"]{background:var(--accent);color:var(--bg)}
.rail button span:last-child{font-variant-numeric:tabular-nums;opacity:.75}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);padding-block:12px;z-index:2;border-bottom:1px solid var(--line)}
.search{flex:1 1 260px;min-width:0;position:relative}
.search input{width:100%;font:inherit;padding:10px 12px 10px 36px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--ink-3)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.seg button{all:unset;cursor:pointer;padding:9px 13px;font-size:13.5px;font-weight:500;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
select{font:inherit;font-size:13.5px;padding:9px 10px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.count{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;padding-block:12px 4px}
.chips{display:none}
/* list */
.cat{margin-top:26px}
.cat>h2{font-weight:400;letter-spacing:-.02em;font-size:26px;margin:0 0 4px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.cat>h2 small{font-size:13px;color:var(--ink-3);letter-spacing:0}
.proj{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);overflow:hidden}
.proj>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:12px 16px;font-weight:500}
.proj>summary::-webkit-details-marker{display:none}
.proj>summary .m{color:var(--ink-3);font-weight:400;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.proj>summary::before{content:"";width:8px;height:8px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(-45deg);margin:6px 6px 0 0;flex:none;transition:transform .15s}
.proj[open]>summary::before{transform:rotate(45deg);margin-top:3px}
.proj>summary .t{flex:1;min-width:0}
.files{border-top:1px solid var(--line-2)}
.f{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:10px 16px;border-top:1px solid var(--line-2);align-items:center}
.f:first-child{border-top:0}
.f .name{min-width:0;overflow-wrap:anywhere;font-size:14.5px}
.f .name a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--accent-soft)}
.f .name a:hover{border-bottom-color:var(--brand)}
.f .meta{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.f .where{grid-column:1/-1;font:11.5px/1.4 var(--mono);color:var(--ink-3);overflow-wrap:anywhere;display:flex;gap:8px;align-items:flex-start}
.where button{all:unset;cursor:pointer;font:500 11px var(--font);color:var(--ink-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;flex:none}
.k{display:inline-block;min-width:34px;text-align:center;padding:2px 6px;border-radius:5px;background:var(--chip);font-size:11px;font-weight:600;letter-spacing:.02em}
.k.k4{background:var(--k4);color:var(--k4-ink)}
.st{padding:2px 8px;border-radius:99px;font-size:11.5px;font-weight:500}
.st.on{background:var(--ok-bg);color:var(--ok)}
.st.wait{background:var(--wait-bg);color:var(--wait)}
.dl{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;border:1px solid var(--line);text-decoration:none}
.dl svg{width:15px;height:15px;stroke:var(--ink)}
.dl.off{opacity:.3;pointer-events:none}
.empty{padding:48px 0;color:var(--ink-2)}
.raw-tag{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand);margin-left:2px}
footer{margin-top:48px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:8px 24px}
@media (max-width: 860px){
  .main{grid-template-columns:minmax(0,1fr)}
  .rail{display:none}
  .chips{display:flex;gap:6px;overflow-x:auto;padding-block:10px 2px;scrollbar-width:none}
  .chips button{all:unset;cursor:pointer;display:inline-flex;gap:6px;white-space:nowrap;padding:7px 11px;border-radius:99px;background:var(--chip);font-size:13px}
  .chips button[aria-pressed="true"]{background:var(--accent);color:var(--bg)}
  .chips button span:last-child{opacity:.6;font-variant-numeric:tabular-nums}
  .f{grid-template-columns:minmax(0,1fr)}
  .f .meta{flex-wrap:wrap}
}
/* folder links */
.flinks{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.flink{font-size:12px;font-weight:500;letter-spacing:0;text-decoration:none;padding:4px 9px;border-radius:6px;border:1px solid var(--line);color:var(--ink-2);background:var(--surface);white-space:nowrap}
.flink:hover{color:var(--ink);border-color:var(--ink-3)}
.cat>h2{width:100%}
.proj>summary .m{display:inline-flex;gap:10px;align-items:center}
.proj>summary .flink{padding:2px 7px;font-size:11.5px}
/* flags */
.fl{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 9px;border-radius:7px;border:1px solid var(--line);font-size:12px;font-weight:500;color:var(--ink-2)}
.fl svg{width:13px;height:13px;stroke:currentColor}
.fl:hover{color:var(--ink);border-color:var(--ink-3)}
.fl[aria-pressed="true"]{background:var(--flag-bg);color:var(--flag);border-color:var(--flag-line)}
.flagnote{grid-column:1/-1;display:grid;gap:6px;background:var(--flag-bg);border:1px solid var(--flag-line);border-radius:8px;padding:8px 10px;font-size:13px}
.flagnote .who{font-weight:600;color:var(--flag)}
.flagnote .c{color:var(--ink)}
.flagnote .c+.c{border-top:1px dashed var(--flag-line);padding-top:6px}
.f.flagged{background:color-mix(in srgb,var(--flag-bg) 45%,transparent)}
.editor{grid-column:1/-1;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.editor label{font-size:12.5px;color:var(--ink-2)}
.editor textarea{font:inherit;font-size:14px;min-height:64px;resize:vertical;padding:8px 10px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);width:100%}
.editor .acts{display:flex;flex-wrap:wrap;gap:8px}
.editor button{all:unset;cursor:pointer;padding:8px 12px;border-radius:7px;font-size:13px;font-weight:500;border:1px solid var(--line)}
.editor button.go{background:var(--flag);color:var(--bg);border-color:var(--flag)}
.banner{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;border:1px solid var(--flag-line);background:var(--flag-bg);border-radius:var(--r-card);padding:12px 16px;margin-bottom:18px;font-size:14px}
.banner b{color:var(--flag)}
.banner button{all:unset;cursor:pointer;padding:7px 12px;border-radius:7px;background:var(--surface);border:1px solid var(--flag-line);font-size:13px;font-weight:500}
.note{font-size:12.5px;color:var(--ink-3)}
.press{margin-top:56px;padding-top:28px;border-top:2px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:end}
.press h2{font-weight:400;letter-spacing:-.02em;font-size:32px;margin:6px 0 4px}
.press p{margin:0;color:var(--ink-2);max-width:60ch}
.press .parts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.press .parts span{padding:6px 10px;border-radius:99px;background:var(--chip);font-size:13px}
.press .parts b{font-weight:600;font-variant-numeric:tabular-nums;margin-left:4px}
.press .acts{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:860px){.press{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
