:root{--bg:#141018;--card:#1f1925;--fg:#eee6f0;--muted:#a597ad;--acc:#c2185b;--acc2:#7b1fa2;--ok:#2e7d32;--err:#c62828;--b:#3a2f42}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:#f48fb1}
header.top{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;background:#0d0a10;border-bottom:1px solid var(--b)}
.brand{font-weight:700;font-size:1.25rem;color:#fff;text-decoration:none}
header nav{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
header nav a{text-decoration:none;color:var(--fg)}
main{max-width:1100px;margin:1rem auto;padding:0 1rem}
footer{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--b);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}
.narrow{max-width:560px;margin-left:auto;margin-right:auto}
.form label{display:block;margin:.6rem 0}
.form input:not([type=checkbox]),.form select,.form textarea,input,select,textarea{width:100%;max-width:100%;padding:.5rem;border-radius:6px;border:1px solid var(--b);background:#120e15;color:var(--fg);font:inherit}
.inline-form input,.inline-form select,.inline input{width:auto}
input.short{width:6rem}
.check{display:flex!important;gap:.4rem;align-items:center}
.check input{width:auto}
fieldset{border:1px solid var(--b);border-radius:8px;margin:.6rem 0}
.btn{display:inline-block;padding:.5rem 1rem;border-radius:6px;border:0;background:var(--acc);color:#fff;text-decoration:none;cursor:pointer;font:inherit}
.btn.secondary{background:#3a2f42}
.btn.danger,.danger{background:var(--err);color:#fff}
button.link{background:none;border:0;color:#f48fb1;cursor:pointer;padding:0;font:inherit}
button.link.danger{background:none;color:#ef9a9a}
form.inline{display:inline}
.muted{color:var(--muted)}
.flash{padding:.6rem 1rem;border-radius:6px;margin-bottom:.8rem}
.flash-success{background:#1b3d1f}.flash-error{background:#4a1515}.flash-info{background:#25213a}
.badge{display:inline-block;min-width:1.3em;padding:0 .35em;border-radius:1em;background:var(--acc);color:#fff;font-size:.8em;text-align:center}
.badge[hidden]{display:none}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}
.usercard{background:#18131c;border:1px solid var(--b);border-radius:8px;padding:.5rem;text-align:center}
.usercard img,.noavatar{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:#2a2230;display:block}
.photos{display:flex;flex-wrap:wrap;gap:.8rem}
.photo{margin:0;width:180px}
.photo img{width:180px;height:180px;object-fit:cover;border-radius:6px}
.photo.mod{width:240px}.photo.mod img{width:240px;height:240px}
.pending{color:#ffb74d;font-size:.85rem}
.tag{display:inline-block;background:var(--acc2);padding:0 .5rem;border-radius:4px;font-size:.85rem}
.thread{max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;padding:.5rem;background:#120e15;border-radius:8px;margin-bottom:.8rem}
.msg{max-width:75%;padding:.4rem .7rem;border-radius:10px;background:#2a2230;align-self:flex-start}
.msg.mine{background:#5a1e3e;align-self:flex-end}
.msg.reported{outline:2px solid var(--err)}
.msg .meta{font-size:.75rem;color:var(--muted)}
.conv{display:block;padding:.6rem;border-bottom:1px solid var(--b);text-decoration:none;color:var(--fg)}
.conv.unread{background:#251a2b}
.conv .muted{display:block}
.row{display:flex;gap:.6rem;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--b)}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.35rem;border-bottom:1px solid var(--b);vertical-align:top}
.subnav{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}
.pager{display:flex;gap:.5rem;margin-top:1rem}
.tiers{display:flex;flex-wrap:wrap;gap:1rem}.tier{flex:1;min-width:200px;border:1px solid var(--b);border-radius:8px;padding:1rem}.tier.current{border-color:var(--acc)}
.notifs li.unread{font-weight:600}
.cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;background:#2a2230;border:1px solid var(--b);border-radius:8px;padding:.8rem;z-index:10}
.cookie[hidden]{display:none}
#toasts{position:fixed;right:1rem;top:4rem;display:flex;flex-direction:column;gap:.5rem;z-index:20}
.toast{display:block;background:var(--acc2);color:#fff;padding:.6rem 1rem;border-radius:8px;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.4);transition:opacity 1s}
.toast.hide{opacity:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.desc,.post-full .body{white-space:normal;background:#18131c;padding:.8rem;border-radius:6px}
.mod-photo{max-width:300px}
blockquote{border-left:3px solid var(--acc);margin:0;padding:.4rem .8rem;background:#18131c}
[hidden]{display:none!important}

.pref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.15rem .9rem;margin-top:.4rem}
.pref-search{border:1px solid var(--b);border-radius:8px;padding:.4rem .7rem;margin:.6rem 0}
.pref-search summary{cursor:pointer;font-weight:600}
.pref-mode{display:flex;gap:1.2rem;margin:.5rem 0}
