
body{font-family:system-ui,sans-serif;margin:0;background:#f5f6f8;color:#222}header{background:#1f2d3d;color:#fff;padding:.7rem 1rem}
header a{color:#fff;text-decoration:none;font-weight:600}main{max-width:1000px;margin:auto;padding:1rem}
form.f{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin-bottom:1rem}
select,input,button{padding:.55rem;font-size:1rem;border:1px solid #bbb;border-radius:6px;width:100%;box-sizing:border-box}
button{background:#2b6cb0;color:#fff;border:0}.card{background:#fff;border-radius:8px;padding:.8rem 1rem;margin:.5rem 0;box-shadow:0 1px 2px #0002}
.muted{color:#666;font-size:.9em}.tag{display:inline-block;background:#e2e8f0;border-radius:4px;padding:0 .4em;font-size:.8em}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}.gal img{width:100%;border-radius:6px}
pre{white-space:pre-wrap;background:#f0f0f0;padding:.5rem;border-radius:6px;font-size:.85em}a{color:#2b6cb0}
:root{--bg:#f4f6f9;--card:#fff;--ink:#1a202c;--mute:#64748b;--line:#e2e8f0;--acc:#2b6cb0}
body{background:var(--bg);color:var(--ink);line-height:1.5}main{max-width:1150px}
.crumbs{font-size:.85rem;color:var(--mute);margin:.2rem 0 .6rem}.crumbs a{color:var(--mute)}
.badge{display:inline-block;background:#e0ecff;color:#1e4e8c;border-radius:999px;padding:.1rem .65rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}
.hero{display:grid;grid-template-columns:1fr;gap:1.2rem}@media(min-width:860px){.hero.has-media{grid-template-columns:minmax(0,1fr) 380px}.hero.has-media .mediabox{grid-column:2;grid-row:1/span 2}}
h1.title{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15;margin:.3rem 0 .4rem;letter-spacing:-.01em}
h1.title .variant{color:var(--mute);font-weight:500}
.card{border:1px solid var(--line);box-shadow:0 1px 3px #0000000d;border-radius:12px;padding:1rem 1.2rem}
.mediabox .lead{display:block;background:#0f172a;border-radius:10px;overflow:hidden}.mediabox .lead img{width:100%;max-height:340px;object-fit:contain;display:block}
.thumbs{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.thumbs a{width:64px;height:64px;border-radius:6px;overflow:hidden;border:2px solid transparent;background:#e5e7eb}
.thumbs a.on{border-color:var(--acc)}.thumbs img{width:100%;height:100%;object-fit:cover}
.caption{font-size:.8rem;color:var(--mute);margin-top:.35rem}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.6rem 0}
.fact{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem}.fact b{display:block;font-size:.72rem;text-transform:uppercase;color:var(--mute);letter-spacing:.04em}
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:.25rem 0 .6rem}.chip{background:#eef2f7;border-radius:6px;padding:.05rem .45rem;font-size:.82rem;font-family:ui-monospace,monospace}
.chip.t{font-family:inherit;background:#ecfdf5;color:#065f46}.chip.k{font-family:inherit;background:#fef3c7;color:#7c4a03}
h2.sec{font-size:1.05rem;margin:1.4rem 0 .5rem}h3.grp{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin:1rem 0 .3rem}
ul.pts{margin:0;padding-left:1.1rem}ul.pts li{margin:.25rem 0}.st{font-size:.7rem;font-weight:700;border-radius:4px;padding:0 .35rem;margin-right:.3rem}
.st.worked{background:#dcfce7;color:#166534}.st.failed{background:#fee2e2;color:#991b1b}.d{color:var(--mute);font-size:.8rem}
details.thread{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:.5rem 0}details.thread summary{cursor:pointer;padding:.7rem 1rem;list-style:none}
details.thread summary::-webkit-details-marker{display:none}details.thread summary .subj{font-weight:600;display:block}
details.thread[open] summary{border-bottom:1px solid var(--line)}details.thread .body{padding:.6rem 1rem}
details.thread pre{max-height:60vh;overflow:auto;background:#f8fafc;border:1px solid var(--line)}
#lb{position:fixed;inset:0;background:#000d;display:none;align-items:center;justify-content:center;z-index:9;cursor:zoom-out}#lb.on{display:flex}#lb img{max-width:96vw;max-height:92vh}
h2.sec.first{margin-top:0}
.files{display:grid;gap:.4rem;margin-top:.6rem}.file{display:flex;gap:.6rem;align-items:center;padding:.5rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);word-break:break-all}
.ficon{flex:none;width:42px;height:50px;border-radius:5px;background:#dc2626;color:#fff;font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:center}
body{margin:0}main{max-width:none;padding:0}
.topbar{position:sticky;top:0;z-index:5;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:#1f2d3d;color:#fff;padding:.6rem 1rem}
.topbar .brand{color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;white-space:nowrap}
.hsearch{display:flex;gap:.4rem;flex:1;min-width:240px;max-width:640px;margin-left:auto}.hsearch input{flex:1;border:0}.hsearch button{width:auto;padding:.5rem 1rem}
.split{display:grid;grid-template-columns:270px minmax(0,1fr);height:calc(100vh - 56px)}
.side{background:#fff;border-right:1px solid var(--line);overflow-y:auto;padding:1rem}
.pane{overflow-y:auto;padding:1rem 1.4rem}
.lbl{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;margin:.2rem 0 .35rem}
.side .lbl+form{margin-bottom:1rem}
.makes{display:flex;flex-direction:column;gap:.3rem}
.mk{display:flex;justify-content:space-between;align-items:center;padding:.55rem .75rem;border-radius:8px;border:1px solid var(--line);color:var(--ink);text-decoration:none;background:#f8fafc}
.mk:hover{background:#eef2f7}.mk.on{background:var(--acc);border-color:var(--acc);color:#fff}
.cnt{font-size:.75rem;background:#0000000f;border-radius:999px;padding:0 .5rem}.mk.on .cnt{background:#ffffff33}
.modelbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;margin-bottom:1rem}
.pills{display:flex;flex-wrap:wrap;gap:.35rem}.pill{padding:.3rem .75rem;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.9rem;background:#f8fafc}
.pill:hover{background:#eef2f7}.pill.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.empty{color:var(--mute);text-align:center;padding:3rem 1rem;border:2px dashed var(--line);border-radius:12px}
a.card.rlink{display:block;text-decoration:none;color:var(--ink)}a.card.rlink:hover{border-color:var(--acc)}
main.single{max-width:1150px;margin:auto;padding:1rem}
@media(max-width:760px){.split{display:block;height:auto}.side{border-right:0;border-bottom:1px solid var(--line);max-height:45vh}
 .makes{flex-direction:row;flex-wrap:wrap}.mk{flex:1 1 45%}.pane{overflow:visible;padding:1rem}.topbar{position:static}}
/* brand theme (logo cyan) */
:root{--acc:#1f9fc8;--cyan:#2bb3d8;--navy:#05080d}
a{color:var(--acc)}
.topbar{background:var(--navy);border-bottom:2px solid var(--cyan);padding:.4rem 1rem}
.topbar .brand{display:flex;align-items:center;gap:.7rem;color:var(--cyan)}
.topbar .brand img{height:48px;width:auto;display:block}
.tagline{font-size:1.15rem;font-weight:600;letter-spacing:.02em;color:#e6f6fb;border-left:1px solid #2bb3d855;padding-left:.7rem}
.hsearch input{background:#0f1724;color:#e6f6fb;border:1px solid #2bb3d866}.hsearch input::placeholder{color:#8aa4b3}
.hsearch input:focus{outline:2px solid var(--cyan);outline-offset:0}
button{background:var(--acc)}.hsearch button{background:var(--cyan);color:#05080d;font-weight:700}
.split{height:calc(100vh - 62px)}
.badge{background:#e0f5fb;color:#0e6f8f}
.mk.on,.pill.on{background:var(--acc);border-color:var(--acc)}
.thumbs a.on,a.card.rlink:hover{border-color:var(--cyan)}
.chip.k{background:#e0f5fb;color:#0e6f8f}
@media(max-width:520px){.tagline{font-size:1rem}}
.chip.o{font-family:inherit;background:#ede9fe;color:#4c1d95}
.chip.c{font-family:inherit;background:#ffedd5;color:#9a3412}.cond{display:inline-block;font-size:.7rem;font-weight:700;background:#ffedd5;color:#9a3412;border-radius:4px;padding:0 .4rem;margin-right:.3rem;text-transform:lowercase}
/* ===== Dark theme ===== */
:root{color-scheme:dark;--bg:#05080d;--bg2:#0b1220;--card:#0f1828;--card2:#131f33;--ink:#e2e8f0;--mute:#9aa9bb;--line:#1f2c40;--acc:#2bb3d8;--cyan:#2bb3d8;--navy:#05080d}
html,body{background:var(--bg);color:var(--ink)}
a{color:var(--cyan)}a:hover{color:#6fd3ee}
.side{background:var(--bg2);border-right-color:var(--line)}
.pane{background:var(--bg)}
.card,.modelbar,details.thread{background:var(--card);border-color:var(--line);box-shadow:0 1px 0 #00000040}
.muted,.d,.caption,.crumbs,.crumbs a,.lbl,h3.grp{color:var(--mute)}
h1.title{color:#f1f5f9}h1.title .variant{color:var(--mute)}
select,input,textarea{background:#0a1322;color:var(--ink);border:1px solid #2a3a52}
select:focus,input:focus{outline:2px solid var(--cyan);outline-offset:0;border-color:var(--cyan)}
option{background:#0a1322;color:var(--ink)}
button,.hsearch button{background:var(--cyan);color:#04121a;font-weight:700;border:0}
button:hover{background:#4cc5e5}
.mk{background:var(--card);border-color:var(--line);color:var(--ink)}.mk:hover{background:var(--card2);border-color:#2a3a52}
.mk.on{background:var(--cyan);border-color:var(--cyan);color:#04121a;font-weight:600}.mk.on .cnt{background:#04121a33;color:#04121a}
.cnt{background:#ffffff14;color:var(--mute)}
.pill{background:var(--card2);border-color:#2a3a52;color:var(--ink)}.pill:hover{border-color:var(--cyan)}
.pill.on{background:var(--cyan);border-color:var(--cyan);color:#04121a;font-weight:600}
.badge{background:#2bb3d822;color:#7fd8f0;border:1px solid #2bb3d855}
.tag{background:#1e2b40;color:#c3cfdd}
.fact{background:var(--card2);border-color:var(--line)}.fact b{color:var(--mute)}
.chip{background:#1a2638;color:#d6e0ec;border:1px solid #26354c}
.chip.k{background:#2bb3d81f;color:#8ddcf2;border-color:#2bb3d84d}
.chip.t{background:#10b9811f;color:#6ee7b7;border-color:#10b9814d}
.chip.o{background:#a78bfa1f;color:#c4b5fd;border-color:#a78bfa4d}
.chip.c,.cond{background:#fb923c1f;color:#fdba74;border:1px solid #fb923c4d}
.st.worked{background:#16a34a2b;color:#86efac}.st.failed{background:#dc26262b;color:#fca5a5}
details.thread summary .subj{color:#f1f5f9}details.thread[open] summary{border-bottom-color:var(--line)}
details.thread summary:hover{background:var(--card2)}
details.thread pre,pre{background:#070d17;border-color:var(--line);color:#cbd5e1}
.mediabox .lead{background:#000}.thumbs a{background:#0a1322}.thumbs a.on{border-color:var(--cyan)}
.file{background:var(--card2);border-color:var(--line);color:var(--ink)}.file:hover{border-color:var(--cyan)}
.ficon{background:#b91c1c;color:#fff}
#lb{background:#000000eb}#lb img{box-shadow:0 0 0 1px #2bb3d855,0 10px 40px #000}
.empty{border-color:var(--line);color:var(--mute)}
a.card.rlink{color:var(--ink)}a.card.rlink:hover{border-color:var(--cyan)}
/* scrollbars */
*{scrollbar-width:thin;scrollbar-color:#2a3a52 transparent}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2a3a52;border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#2bb3d8}
/* category tiles */
.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-bottom:1.1rem}
.cat{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .2rem .45rem;border-radius:10px;
 background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none;min-width:0}
.cat:hover{border-color:#2bb3d880;background:var(--card2);color:#fff}
.cat .ico{width:26px;height:26px;color:var(--cyan)}
.cat .cl{font-size:.72rem;font-weight:600;line-height:1.1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cat .cn{font-size:.65rem;color:var(--mute)}
.cat.on{background:var(--cyan);border-color:var(--cyan);color:#04121a}.cat.on .ico{color:#04121a}.cat.on .cn{color:#04121acc}
.cat:focus-visible,.mk:focus-visible,.pill:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media(max-width:300px){.cats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.cats{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}}
/* wider sidebar */
.split{grid-template-columns:360px minmax(0,1fr)}
@media(min-width:1400px){.split{grid-template-columns:380px minmax(0,1fr)}}
@media(min-width:761px) and (max-width:1000px){.split{grid-template-columns:340px minmax(0,1fr)}}
.side{padding:1rem 1.1rem}
.cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}
.cat{padding:.65rem .25rem .5rem}.cat .ico{width:28px;height:28px}.cat .cl{font-size:.78rem;overflow:visible;text-overflow:clip}
.makes{flex-direction:column}.mk{width:100%;box-sizing:border-box}
@media(max-width:760px){.split{display:block}.cats{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.makes{flex-direction:row}.mk{width:auto}}
/* auth */
.userbox{display:flex;align-items:center;gap:.6rem}.userbox form{margin:0}
.uname{color:#e6f6fb;font-weight:600;text-decoration:none;padding:.3rem .5rem;border-radius:6px}.uname:hover{background:#ffffff12;color:var(--cyan)}
button.logout{width:auto;background:transparent;color:var(--cyan);border:1px solid #2bb3d880;padding:.4rem .8rem;font-weight:600}
button.logout:hover{background:#2bb3d822}
.authwrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:1rem}
.authcard{width:100%;max-width:380px;display:flex;flex-direction:column;gap:.8rem;padding:1.6rem 1.6rem 1.4rem;text-align:center}
.authlogo{width:190px;height:auto;margin:0 auto .2rem;display:block}.authcard h1{margin:0;font-size:1.3rem}.authcard p{margin:0 0 .4rem}
.authcard label,.pwform label{display:flex;flex-direction:column;gap:.3rem;text-align:left;font-size:.85rem;color:var(--mute)}
.pwform{display:grid;gap:.8rem;max-width:420px}.pwform button{width:auto;justify-self:start;padding:.55rem 1.2rem}
.authpage{max-width:760px}.authpage .card{margin:1rem 0}
.alert{border-radius:8px;padding:.55rem .8rem;font-size:.9rem;text-align:left}.alert.err{background:#dc262626;color:#fca5a5;border:1px solid #dc262666}
.alert.ok{background:#16a34a26;color:#86efac;border:1px solid #16a34a66}
@media(max-width:760px){.userbox{margin-left:auto}}
/* user menu */
.userbox{position:relative}
.avatar{width:38px;height:38px;padding:0;border-radius:50%;background:#0f1828;border:1px solid #2a3a52;color:#c3cfdd;display:flex;align-items:center;justify-content:center;cursor:pointer}
.avatar svg{width:28px;height:28px}
.avatar:hover,.avatar[aria-expanded=true]{color:var(--cyan);border-color:var(--cyan);background:#2bb3d81a}
.avatar:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.umenu{position:absolute;right:0;top:calc(100% + .5rem);min-width:210px;background:var(--card);border:1px solid #2a3a52;border-radius:10px;box-shadow:0 12px 32px #000a;padding:.35rem;z-index:20}
.umenu[hidden]{display:none}
.umenu-name{padding:.55rem .7rem .6rem;border-bottom:1px solid var(--line);margin-bottom:.3rem;font-weight:600;color:#f1f5f9;display:flex;flex-direction:column;word-break:break-word}
.umenu-name .d{font-weight:400;font-size:.8rem}
.umenu a,.umenu .menuitem{display:block;width:100%;text-align:left;padding:.5rem .7rem;border-radius:6px;color:var(--ink);background:transparent;border:0;font:inherit;font-weight:500;text-decoration:none;cursor:pointer;box-sizing:border-box}
.umenu a:hover,.umenu a:focus,.umenu .menuitem:hover,.umenu .menuitem:focus{background:#2bb3d822;color:var(--cyan);outline:none}
.umenu form{margin:0}
.cathead{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.cathead .lbl{margin:0}
.allbtn{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:7px;border:1px solid var(--line);background:var(--card);color:var(--mute);text-decoration:none;font-size:.72rem;font-weight:600}
.allbtn .ico{width:15px;height:15px}.allbtn:hover{color:var(--cyan);border-color:#2bb3d880}
.allbtn.on{background:var(--cyan);border-color:var(--cyan);color:#04121a}
.allbtn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.authpage.wide{max-width:980px}.urow{padding:.8rem 1rem}.uhead{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.uhead .ml{margin-left:auto}
.urow details summary{cursor:pointer;color:var(--cyan);margin-top:.4rem;font-size:.9rem}
.ugrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:.7rem}.ugrid form{margin:0}
label.chk{flex-direction:row;align-items:center;gap:.45rem;color:var(--ink)}label.chk input{width:auto}
button.ghost{width:auto;background:transparent;color:var(--cyan);border:1px solid #2bb3d880;padding:.45rem 1rem}
button.danger{width:auto;background:#b91c1c;color:#fff;padding:.45rem 1rem}button.danger:hover{background:#dc2626}
.hint{font-size:.8rem;margin:0;line-height:1.35}
.dl{display:block;font-size:.82rem;padding:.3rem .1rem;text-decoration:none;word-break:break-all}.dl .d{display:block;font-size:.75rem}
.dl:hover{text-decoration:underline}
/* lightbox v2 */
#lb{position:fixed;inset:0;background:#02050ae8;display:none;align-items:center;justify-content:center;z-index:50;cursor:zoom-out;padding:3.5rem 4rem 4.5rem}
#lb.on{display:flex}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:.6rem;max-width:100%;max-height:100%}
#lb .lb-fig img{max-width:calc(100vw - 9rem);max-height:calc(100vh - 9rem);object-fit:contain;cursor:default;border-radius:6px;background:#000;box-shadow:0 0 0 1px #2bb3d855,0 10px 40px #000}
.lb-fig figcaption{color:#cbd5e1;font-size:.85rem;text-align:center;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;justify-content:center;max-width:90vw}
.lb-count{color:#04121a;background:var(--cyan);font-weight:700;border-radius:999px;padding:.05rem .55rem;font-size:.78rem}.lb-count:empty{display:none}
.lb-btn{position:absolute;width:48px;height:48px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;
 background:#0f1828e6;color:#e2e8f0;border:1px solid #2a3a52;cursor:pointer}
.lb-btn svg{width:26px;height:26px}.lb-btn:hover{color:var(--cyan);border-color:var(--cyan);background:#13233a}
.lb-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.lb-btn[hidden]{display:none}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}.lb-next{right:1rem;top:50%;transform:translateY(-50%)}.lb-close{top:.8rem;right:.8rem;width:42px;height:42px}
@media(max-width:760px){#lb{padding:3.5rem .5rem 4.5rem}#lb .lb-fig img{max-width:96vw;max-height:calc(100vh - 10rem)}
 .lb-prev,.lb-next{top:auto;bottom:.9rem;transform:none}.lb-prev{left:calc(50% - 64px)}.lb-next{right:calc(50% - 64px)}}
.email{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all}
.fact .src{font-size:.72rem;margin-left:.25rem}
