/* StreamHelpers.com — shared site styles */

:root {
  color-scheme: dark;
  --bg:#0d1117; --panel:#161b22; --panel-2:#1c2129; --line:#30363d;
  --text:#f0f6fc; --muted:#9db3d9; --link:#58a6ff; --accent:#1f6feb;
  --amber:#f0b429; --green:#3fb950; --red:#f85149;
}
* { box-sizing:border-box; }
body {
  background:var(--bg); color:var(--text); margin:0; padding:0 16px;
  font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;
}
.wrap { max-width:900px; margin:0 auto; padding:36px 0 72px; }
.wrap.narrow { max-width:760px; }
a { color:var(--link); }

/* ---- site header ---- */
.site-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; padding-bottom:18px; margin-bottom:8px;
  border-bottom:1px solid var(--line);
}
.site-head .brand { display:inline-block; line-height:0; }
.site-head .brand img { width:230px; max-width:60vw; height:auto; }
.site-nav { display:flex; gap:18px; flex-wrap:wrap; font-size:.9rem; }
.site-nav a { color:var(--muted); text-decoration:none; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color:var(--link); }

/* ---- hero (home only) ---- */
.hero { text-align:center; padding:40px 0 6px; }
.hero img.logo { width:100%; max-width:420px; height:auto; }
.hero .tagline { color:var(--muted); font-size:1.08rem; max-width:640px; margin:16px auto 0; }

/* ---- typography ---- */
h1 { font-size:1.9rem; margin:26px 0 6px; }
h2 {
  font-size:1.15rem; margin:42px 0 4px; padding-bottom:8px;
  border-bottom:1px solid var(--line); letter-spacing:.2px;
}
h3 { font-size:1.02rem; margin:26px 0 6px; }
p { margin:0 0 14px; }
.muted { color:var(--muted); }
.updated { color:var(--muted); font-size:.86rem; margin-top:0; }
ul { padding-left:22px; }
li { margin:6px 0; }

code {
  font-family:'Courier New',monospace; background:var(--panel-2);
  border:1px solid var(--line); border-radius:5px; padding:1px 6px; font-size:.86em;
}
pre {
  font-family:'Courier New',monospace; background:var(--panel); border:1px solid var(--line);
  border-radius:10px; padding:16px; overflow-x:auto; font-size:.85rem; margin:14px 0;
}
pre code { background:none; border:0; padding:0; font-size:1em; }

/* ---- panels ---- */
.lede {
  background:var(--panel); border:1px solid var(--line); border-radius:12px;
  padding:18px 22px; margin:34px 0 8px; color:var(--muted); font-size:.96rem;
}
.lede strong { color:var(--text); }
.note {
  background:rgba(240,180,41,.10); border-left:4px solid var(--amber);
  padding:14px 18px; border-radius:0 8px 8px 0; margin:20px 0; font-size:.93rem;
}
.danger {
  background:rgba(248,81,73,.12); border-left:4px solid var(--red);
  padding:14px 18px; border-radius:0 8px 8px 0; margin:20px 0; font-size:.93rem;
}
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:20px; }
.col { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:18px 20px; }
.col h4 { margin:0 0 8px; font-size:1rem; }
.col p { margin:0; color:var(--muted); font-size:.9rem; }

/* ---- app cards ---- */
.apps { display:grid; gap:18px; margin-top:22px; }
.app {
  display:grid; grid-template-columns:72px 1fr; gap:20px; align-items:start;
  background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:22px; transition:border-color .15s ease, transform .15s ease;
}
.app:hover { border-color:#4a5568; transform:translateY(-2px); }
.app img { width:72px; height:72px; border-radius:16px; display:block; }
.app h3 { margin:0 0 6px; font-size:1.22rem; }
.app h3 a { text-decoration:none; }
.app h3 a:hover { text-decoration:underline; }
.app p { margin:0 0 14px; color:var(--muted); font-size:.95rem; }

.meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.tag {
  font-size:.74rem; letter-spacing:.3px; padding:3px 9px; border-radius:999px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--muted);
  white-space:nowrap;
}
.tag.self  { color:var(--green); border-color:rgba(63,185,80,.35); }
.tag.port  { color:var(--muted); }

.actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.btn {
  display:inline-block; background:var(--accent); color:#fff; text-decoration:none;
  font-weight:600; font-size:.88rem; padding:8px 16px; border-radius:8px;
}
.btn:hover { background:#3b82f6; }
.btn.ghost { background:transparent; border:1px solid var(--line); color:var(--link); }
.btn.ghost:hover { background:var(--panel-2); }
.btn.donate { background:transparent; border:1px solid rgba(63,185,80,.45); color:var(--green); }
.btn.donate:hover { background:rgba(63,185,80,.10); }

/* ---- coming soon ---- */
.app.soon { opacity:.72; }
.app.soon:hover { transform:none; border-color:var(--line); }
.app.soon h3 { color:var(--muted); }
.tag.soon { color:var(--amber); border-color:rgba(240,180,41,.35); }

/* ---- donate panel ---- */
.donate-box {
  background:var(--panel); border:1px solid rgba(63,185,80,.30); border-radius:14px;
  padding:22px 24px; margin-top:22px;
}
.donate-box h3 { margin:0 0 8px; font-size:1.1rem; }
.donate-box p { color:var(--muted); font-size:.94rem; }
.donate-box p:last-of-type { margin-bottom:18px; }

/* ---- footer ---- */
.site-foot {
  margin-top:64px; padding-top:24px; border-top:1px solid var(--line);
  color:var(--muted); font-size:.86rem; text-align:center;
}
.site-foot .links { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:14px; }
.site-foot .links a { color:var(--muted); text-decoration:none; }
.site-foot .links a:hover { color:var(--link); }
.site-foot .bluesoup { margin-top:10px; }
.site-foot .bluesoup a { color:var(--link); text-decoration:none; font-weight:600; }
.site-foot .bluesoup a:hover { text-decoration:underline; }

@media (max-width:560px) {
  .wrap { padding:26px 0 52px; }
  .app { grid-template-columns:1fr; gap:14px; }
  .app img { width:60px; height:60px; }
  .site-head { justify-content:center; text-align:center; }
}
