:root{--bg:#f6f5f2;--card:#fff;--fg:#1d1f23;--mut:#6b7078;--line:#e4e2dc;--acc:#2f6fdb;--up:#2fa84f;--down:#d0453a;--unk:#b0b4ba}
@media (prefers-color-scheme:dark){:root{--bg:#121417;--card:#1b1e23;--fg:#e8eaed;--mut:#9aa0a8;--line:#2a2e35;--acc:#7aa7ff;--unk:#5a6068}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Noto Sans CJK TC",sans-serif}
header{max-width:1100px;margin:0 auto;padding:48px 20px 8px}
h1{margin:0;font-size:2.1rem;letter-spacing:-.02em}
h1 span{color:var(--mut);font-weight:500}
.sub{margin:.2rem 0 1.2rem;color:var(--mut)}
#q{width:100%;max-width:360px;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);font:inherit}
#q:focus{outline:2px solid var(--acc);outline-offset:1px}
main{max-width:1100px;margin:0 auto;padding:8px 20px 40px}
section{margin-top:28px}
section h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:0 0 10px;display:flex;align-items:center;gap:.5rem}
section.private h2::after{content:"only visible at home / on WireGuard";text-transform:none;letter-spacing:0;font-weight:400;opacity:.8}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
a.card{display:flex;gap:12px;align-items:flex-start;padding:14px 14px 12px;background:var(--card);border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none;transition:transform .08s ease,border-color .08s ease,box-shadow .08s ease}
a.card:hover,a.card:focus-visible{border-color:var(--acc);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.08);outline:none}
.ic{font-size:1.6rem;line-height:1;width:2rem;text-align:center;flex:none;padding-top:2px}
.bd{min-width:0;flex:1}
.nm{font-weight:600;display:flex;align-items:center;gap:.45rem}
.nm .lk{font-size:.8rem;opacity:.7}
.ds{color:var(--mut);font-size:.88rem;margin-top:2px}
.ho{color:var(--mut);font-size:.75rem;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;background:var(--unk);flex:none;margin-left:auto}
.dot.up{background:var(--up)}.dot.down{background:var(--down)}
.hidden{display:none!important}
footer{max-width:1100px;margin:0 auto;padding:0 20px 32px;color:var(--mut);font-size:.8rem}
