:root { --bg:#0b0f14; --card:#151b23; --fg:#e7edf3; --muted:#8b98a5; --accent:#ffd000; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg);
  font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
#topbar { position:sticky; top:0; display:flex; align-items:center; gap:8px;
  padding:12px 16px; background:#0b0f14ee; backdrop-filter:blur(8px);
  border-bottom:1px solid #1f2630; z-index:10; }
.spacer { flex:1; }
.iconbtn { background:none; border:0; color:var(--fg); font-size:16px; cursor:pointer; padding:6px 8px; }
main { padding:16px; max-width:1100px; margin:0 auto; }
h2.section { font-size:18px; margin:24px 0 12px; display:flex; align-items:baseline; gap:10px; }
h2.section a { font-size:13px; color:var(--accent); text-decoration:none; margin-left:auto; }
.row { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; }
.card { background:var(--card); border:1px solid #1f2630; border-radius:12px;
  overflow:hidden; cursor:pointer; display:flex; flex-direction:column; }
.card.read { opacity:.5; }
.card img { width:100%; aspect-ratio:16/9; object-fit:cover; background:#1f2630; }
.card .body { padding:10px 12px; }
.card .title { font-weight:600; margin:0 0 6px; }
.card .meta { color:var(--muted); font-size:12px; }
.reader { max-width:720px; margin:0 auto; }
.reader img { width:100%; border-radius:12px; margin:12px 0; }
.reader .src { color:var(--accent); text-decoration:none; }
.login { max-width:320px; margin:18vh auto; text-align:center; }
.login input { width:100%; padding:12px; border-radius:10px; border:1px solid #2a323d;
  background:var(--card); color:var(--fg); font-size:16px; }
.login button, .settings button { background:var(--accent); border:0; color:#111;
  padding:12px 16px; border-radius:10px; font-weight:700; cursor:pointer; margin-top:10px; }
.settings input, .settings select { padding:10px; border-radius:8px; border:1px solid #2a323d;
  background:var(--card); color:var(--fg); margin:4px 0; width:100%; }
.feedrow { display:flex; gap:8px; align-items:center; justify-content:space-between;
  border-bottom:1px solid #1f2630; padding:8px 0; }
.err { color:#ff6b6b; min-height:1.2em; }
