/* Minimal, fast, dark theme */
:root{--bg:#0b0e11;--ink:#e8eaed;--panel:#121821;--line:#1e2833;--brand:#8ab4f8}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:1.25rem}
header,footer{background:#11151a}
nav a{margin-right:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}
.card.narrow{max-width:520px;margin:0 auto}
label{display:block;margin:.6rem 0 .25rem}
input[type=text],select,textarea{width:100%;padding:.6rem;border-radius:8px;border:1px solid #2a3644;background:#0e141c;color:var(--ink)}
input[type=radio]{margin-right:.35rem}
.btn{display:inline-block;padding:.6rem 1rem;border:1px solid #2a3644;border-radius:10px;background:#18202b;color:var(--ink)}
.btn:hover{background:#1b2431}
.btn.ghost{background:transparent;color:#9fb3c8}
.btn.ghost:hover{background:rgba(255,255,255,0.05)}
.error{color:#ff8080}
code,kbd{background:#0e141c;padding:.1rem .35rem;border-radius:6px;border:1px solid #223044}
.muted{color:#9aa0a6}
.small{font-size:.9em}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{position:static;width:auto;height:auto;display:inline-block;padding:.5rem;background:#18202b;border-radius:8px}
.active{font-weight:600;text-decoration:underline}
.header-flex{display:flex;align-items:center;justify-content:space-between;gap:1rem}

.grid.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:1rem 0}
.stat-card{border:1px solid var(--line);border-radius:12px;padding:1rem;background:rgba(255,255,255,0.02)}
.stat-label{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:#9fb3c8}
.stat-value{font-size:2rem;font-weight:600;margin:.2rem 0}
.stat-sub{color:#9fb3c8;font-size:.9rem}
.stat-list{list-style:none;margin:.4rem 0 0;padding:0}
.stat-list li{font-size:.9rem;margin-bottom:.2rem}
.admin-actions{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem}
.moderation-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}
.moderation-filters .btn{background:rgba(255,255,255,0.06)}
.moderation-filters .btn.active{background:#2c7be5;border-color:#2c7be5;color:#fff}
.pagination{display:flex;align-items:center;gap:.6rem;margin-top:1rem;flex-wrap:wrap}

/* Ensure embedded diagrams and picture fallbacks are responsive and centered
	inside card containers. This overrides any fixed width/height attributes on
	the <img> used as a fallback and makes inlined SVGs display centered. */
/* Use flex centering for figures and picture elements so diagrams align nicely
	 across desktop and mobile. This reduces horizontal shift and keeps SVGs
	 centered inside `.card` containers. */
.card figure, .card picture {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center; /* fallback for non-flex-capable UA */
}
.card picture img, .card img, .card svg { max-width:100%; height:auto; display:block; margin:0 auto; }

/* Mobile: use flex centering so very narrow viewports (phones) align SVGs and fallback
	 images vertically and horizontally without extra whitespace or horizontal shift. */
@media (max-width: 600px) {
	.card figure, .card picture {
		padding: 0.25rem; /* small padding to avoid touching edges on tiny devices */
	}
}


/* hero */
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem;align-items:center}
.hero .lead{font-size:1.05rem;color:#c6d1dc}
.btn-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.badges{display:flex;gap:.5rem;margin:.8rem 0 0;padding:0;list-style:none}
.badge{display:inline-block;border:1px solid #2a3644;border-radius:999px;padding:.25rem .6rem;font-size:.8rem;color:#9fb3c8;background:#0f151d}
.hero-art{justify-self:end}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media (max-width: 860px){
  .hero{grid-template-columns:1fr}
  .hero-art{justify-self:start}
  .grid{grid-template-columns:1fr}
}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;text-align:center}
.stat{font-size:1.4rem;font-weight:700;display:block}
.label{display:block;color:#9fb3c8}
.small{font-size:.85rem}
.tight li{margin:.35rem 0}
.downloads{margin:.4rem 0 0}
.downloads li{margin:.25rem 0}

.wall-preview{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.wall-preview li{padding:.5rem .6rem;border:1px solid #1e2833;border-radius:10px;background:#101720}
.wall{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.wall-item{border:1px solid var(--line);border-radius:14px;padding:1rem;background:rgba(255,255,255,0.02)}
.wall-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.4rem}
.wall-item .quote{font-size:1.05rem;margin:0}
.wall-source{margin-top:.5rem}
.wall-source summary{cursor:pointer;color:#9fb3c8}
.chip{border:1px solid var(--line);padding:.15rem .45rem;border-radius:999px;font-size:.8rem;color:#cfd8e3}
