:root, html.theme-ember {
  --bg: #121212;
  --panel: #1c1c1c;
  --panel2: #242424;
  --line: #333;
  --text: #e8e8e8;
  --muted: #9a9a9a;
  --accent: #ff8a00;
  --accent2: #ffc14d;
  --danger: #e35d5d;
  --ok: #6fbf73;
  --topbar: #0c0c0c;
  --nav: #1a1a1a;
  --input: #111;
  --notice-bg: #221a10;
  --notice-text: #f3e6d0;
}
html.theme-crimson {
  --accent: #e11d48; --accent2: #fb7185; --topbar: #14080c; --nav: #1c1014;
  --notice-bg: #2a1016; --notice-text: #ffd6de;
}
html.theme-violet {
  --accent: #a855f7; --accent2: #d8b4fe; --topbar: #120818; --nav: #1a1224;
  --notice-bg: #1d1230; --notice-text: #ead9ff;
}
html.theme-ocean {
  --accent: #0ea5e9; --accent2: #7dd3fc; --topbar: #071018; --nav: #10202a;
  --notice-bg: #0c2230; --notice-text: #d7f3ff;
}
html.theme-forest {
  --accent: #22c55e; --accent2: #86efac; --topbar: #07140c; --nav: #102018;
  --notice-bg: #102616; --notice-text: #d9ffe6;
}
html.theme-rose {
  --accent: #f43f5e; --accent2: #fda4af; --topbar: #16080c; --nav: #221016;
  --notice-bg: #2a1218; --notice-text: #ffd9de;
}
html.theme-gold {
  --accent: #eab308; --accent2: #fde68a; --topbar: #161208; --nav: #221c10;
  --notice-bg: #2a220e; --notice-text: #fff3c4;
}
html.theme-slate {
  --accent: #94a3b8; --accent2: #e2e8f0; --topbar: #0b0f14; --nav: #151b22;
  --notice-bg: #1a222c; --notice-text: #e6edf5;
}
html.theme-midnight {
  --bg: #070b12; --panel: #101826; --panel2: #162033; --line: #243044;
  --accent: #22d3ee; --accent2: #a5f3fc; --topbar: #05080e; --nav: #0c1420;
  --notice-bg: #0b2530; --notice-text: #d7fbff;
}
html.theme-copper {
  --accent: #c2410c; --accent2: #fdba74; --topbar: #160b06; --nav: #22140c;
  --notice-bg: #2a160c; --notice-text: #ffd8b8;
}
html.theme-amber {
  --accent: #f59e0b; --accent2: #fcd34d; --topbar: #161008; --nav: #22180c;
  --notice-bg: #2a1c0c; --notice-text: #ffe7b0;
}
html.theme-lime {
  --accent: #84cc16; --accent2: #d9f99d; --topbar: #0c1406; --nav: #16200c;
  --notice-bg: #1a280c; --notice-text: #e8ffb8;
}
html.theme-teal {
  --accent: #14b8a6; --accent2: #99f6e4; --topbar: #061412; --nav: #0c201c;
  --notice-bg: #0c2622; --notice-text: #cffff6;
}
html.theme-indigo {
  --accent: #6366f1; --accent2: #c7d2fe; --topbar: #0c0c1a; --nav: #141428;
  --notice-bg: #181838; --notice-text: #dde3ff;
}
html.theme-fuchsia {
  --accent: #d946ef; --accent2: #f5d0fe; --topbar: #160816; --nav: #221022;
  --notice-bg: #2a1230; --notice-text: #f8d9ff;
}
html.theme-coral {
  --accent: #ff6b4a; --accent2: #ffb4a2; --topbar: #180a08; --nav: #241410;
  --notice-bg: #2c1612; --notice-text: #ffd8d0;
}
html.theme-ice {
  --bg: #0b1418; --panel: #122026; --panel2: #1a2c34; --line: #2a4048;
  --accent: #67e8f9; --accent2: #ecfeff; --topbar: #071016; --nav: #102028;
  --notice-bg: #123038; --notice-text: #e8feff;
}
html.theme-blood {
  --accent: #b91c1c; --accent2: #fca5a5; --topbar: #140606; --nav: #1c0c0c;
  --notice-bg: #2a1010; --notice-text: #ffd0d0;
}
html.theme-neon {
  --bg: #070b07; --panel: #101610; --panel2: #162016; --line: #2a3a24;
  --accent: #39ff14; --accent2: #d0ff8a; --topbar: #050805; --nav: #0c140c;
  --notice-bg: #102610; --notice-text: #e8ffc8;
}
html.theme-mocha {
  --accent: #c4a484; --accent2: #e8d5b7; --topbar: #14100c; --nav: #1c1812;
  --notice-bg: #261e16; --notice-text: #f3e6d4;
}
html.theme-steel {
  --accent: #64748b; --accent2: #cbd5e1; --topbar: #0c1014; --nav: #161c22;
  --notice-bg: #1a222a; --notice-text: #e2e8f0;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); font: 14px/1.45 Arial, Helvetica, sans-serif; }
a { color: var(--accent2); text-decoration: none; }
a:hover { color: #fff; text-decoration: underline; }
.wrap { width: min(1180px, calc(100% - 24px)); margin: 0 auto; }
.topbar { background: var(--topbar); border-bottom: 2px solid var(--accent); }
.bar { display: flex; align-items: center; gap: 16px; padding: 10px 0; flex-wrap: wrap; }
.logo { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 22px; color: var(--accent); letter-spacing: .4px; text-decoration: none; }
.logo-mark { width: 48px; height: 48px; display: block; flex: 0 0 48px; border-radius: 50%; object-fit: cover; background: #000; }
.logo-text { line-height: 1; letter-spacing: .6px; text-transform: none; font-family: Georgia, "Times New Roman", serif; }
.logo:hover { color: var(--accent2); text-decoration: none; }
.header-ad { flex: 0 0 auto; max-width: 320px; width: auto; position: relative; min-height: 0; }
.header-ad-slide { display: none; width: 100%; }
.header-ad-slide.on { display: flex; align-items: center; }
.header-ad-slide img { max-height: 56px; max-width: 100%; display: block; }
.header-ad img { max-height: 56px; max-width: 100%; display: block; }
.header-ad-empty { width: 100%; border: 1px dashed #555; color: #888; font-size: 12px; text-align: center; padding: 10px 8px; }
.search { display: flex; flex: 1; min-width: 220px; }
.search input { flex: 1; background: var(--panel2); border: 1px solid var(--line); color: var(--text); padding: 7px 10px; border-radius: 3px 0 0 3px; }
.search button, button, .btn, .btn-sm {
  background: var(--accent); color: #111; border: 0; padding: 7px 12px; cursor: pointer; font-weight: 700;
}
.search button { border-radius: 0 3px 3px 0; }
.btn { display: inline-block; border-radius: 3px; text-decoration: none; }
.btn:hover, button:hover { filter: brightness(1.08); text-decoration: none; color: #111; }
.btn-sm { padding: 5px 10px; border-radius: 3px; display: inline-block; }
.user-nav { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.mainnav { background: var(--nav); border-bottom: 1px solid var(--line); }
.mainnav .wrap { display: flex; gap: 14px; padding: 8px 0; flex-wrap: wrap; }
.mainnav a { color: #ddd; }
.page { padding: 18px 0 40px; }
.flash { padding: 10px 12px; margin-bottom: 14px; border-radius: 3px; }
.flash-info { background: #2a3344; }
.flash-ok { background: #1e3a24; }
.flash-err { background: #3a1e1e; }
h1 { font-size: 22px; margin: 0 0 12px; }
h2 { font-size: 16px; margin: 22px 0 10px; color: var(--accent2); }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.gcard { background: var(--panel); border: 1px solid var(--line); padding: 8px; }
.gcard .thumb { display: block; position: relative; background: #000; aspect-ratio: 4/3; overflow: hidden; }
.gcard .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; image-rendering: auto; }
.gcard .cnt { position: absolute; right: 4px; bottom: 4px; background: rgba(0,0,0,.75); color: #fff; font-size: 11px; padding: 2px 6px; }
.gcard h3 { font-size: 13px; margin: 8px 0 4px; line-height: 1.25; min-height: 32px; }
.gcard h3 a { color: #fff; }
.gcard .meta { color: var(--muted); font-size: 12px; margin: 0; }
.layout { display: grid; grid-template-columns: 1fr 260px; gap: 20px; }
.side { background: var(--panel); border: 1px solid var(--line); padding: 12px; }
.side h2 { margin-top: 0; }
.tagcloud a, .catlist a { display: inline-block; margin: 0 8px 8px 0; background: var(--panel2); border: 1px solid var(--line); padding: 3px 8px; border-radius: 3px; color: #ddd; }
.cat-icon { width: 18px; height: 18px; object-fit: cover; vertical-align: middle; margin-right: 4px; border-radius: 3px; }
.cat-icon-emoji { display: inline-block; width: 1.25em; text-align: center; margin-right: 4px; }
.cat-select { position: relative; max-width: 360px; }
.cat-select-btn, .cat-select-opt {
  width: 100%; text-align: left; background: var(--input, #111); color: var(--text); border: 1px solid var(--line);
  padding: 8px; font-weight: 400; cursor: pointer;
}
.cat-select-btn:hover, .cat-select-opt:hover { filter: none; color: #fff; background: var(--panel2); }
.cat-select-menu {
  position: absolute; z-index: 40; left: 0; right: 0; top: 100%;
  background: var(--panel); border: 1px solid var(--line); max-height: 280px; overflow: auto;
}
.cat-select-opt.on { background: var(--panel2); color: var(--accent2); }
.form { background: var(--panel); border: 1px solid var(--line); padding: 16px; max-width: 640px; }
label { display: block; margin: 10px 0 4px; color: #ccc; }
input[type=text], input[type=password], input[type=email], input[type=number], select, textarea {
  width: 100%; background: var(--input); color: var(--text); border: 1px solid var(--line); padding: 8px; border-radius: 3px;
}
textarea { min-height: 90px; }
.help { color: var(--muted); font-size: 12px; }
.pager { margin: 18px 0; display: flex; gap: 6px; flex-wrap: wrap; }
.pager a, .pager .gap { background: var(--panel2); border: 1px solid var(--line); padding: 4px 9px; color: #ddd; }
.pager a.on { background: var(--accent); color: #111; font-weight: 700; }
.thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.thumbs a { display: block; background: #000; aspect-ratio: 4/3; overflow: hidden; border: 1px solid var(--line); }
.thumbs img { width: 100%; height: 100%; object-fit: cover; }
.thumb-item { position: relative; }
.thumb-item .drag-h {
  position: absolute; top: 6px; left: 6px; z-index: 2; cursor: grab;
  background: rgba(0,0,0,.75); color: #fff; padding: 6px 8px; font-size: 14px; border-radius: 3px;
}
.thumb-item.dragging { opacity: .45; }
.thumb-item .drag-h:active { cursor: grabbing; }
.thumbs[data-reorder] { user-select: none; -webkit-user-select: none; }
.thumbs[data-reorder] img { -webkit-user-drag: none; }
.viewer { text-align: center; background: #000; border: 1px solid var(--line); padding: 10px; }
.viewer img, .viewer-video { max-width: 100%; height: auto; }
.viewer-video { width: 100%; max-height: 80vh; background: #000; }
img.vthumb-loading { opacity: .7; }
.play-badge {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  background: rgba(0,0,0,.65); color: #fff; border-radius: 50%;
  width: 42px; height: 42px; line-height: 42px; text-align: center; font-size: 16px; pointer-events: none;
}
.viewer-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 16px 0 8px; flex-wrap: wrap; }
.viewer-nav { display: flex; gap: 8px; }
.viewer-del { margin-left: auto; }
.viewer-del button { background: var(--danger); color: #fff; }
.comments { margin-top: 20px; }
.comment { background: var(--panel); border: 1px solid var(--line); padding: 10px; margin-bottom: 8px; }
.comment .who { color: var(--muted); font-size: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sitefoot { border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; padding: 20px 0 40px; }
.agegate { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.agebox { background: var(--panel); border: 2px solid var(--accent); padding: 28px; max-width: 480px; text-align: center; }
.muted { color: var(--muted); }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid var(--line); padding: 8px; text-align: left; }
.actions a, .actions button { margin-right: 8px; }
.stars button { background: transparent; color: var(--accent); font-size: 18px; padding: 0 2px; }
.badge { display: inline-block; background: #333; padding: 1px 6px; border-radius: 3px; font-size: 11px; }
.badge.on { background: #1b7f3a; color: #fff; }
.prof h1 { font-size: 20px; }
.ptabs { display: flex; flex-wrap: wrap; gap: 0; background: #161616; border: 1px solid var(--line); margin: 0 0 16px; }
.ptabs a { padding: 8px 12px; color: #ddd; border-right: 1px solid var(--line); text-decoration: none; text-align: center; box-sizing: border-box; }
.ptabs a:hover { background: #222; color: #fff; text-decoration: none; }
.ptabs a.on { background: var(--accent); color: #111; font-weight: 700; }
.prof-grid { display: block; }
.prof-card { background: var(--panel); border: 1px solid var(--line); padding: 8px; width: 100%; max-width: none; box-sizing: border-box; }
.prof-av-frame { display: block; width: 100%; max-width: none; height: auto; aspect-ratio: 2 / 3; overflow: hidden; background: #000; margin: 0 0 8px; }
.prof-av { width: 100%; height: 100%; max-width: none; aspect-ratio: 2 / 3; object-fit: cover; object-position: center 20%; background: #000; display: block; cursor: zoom-in; }
@media (min-width: 821px) {
  .prof-grid { display: grid; grid-template-columns: minmax(240px, 320px) 1fr; gap: 16px; align-items: start; }
}
.prof-av-hint { margin: 0 0 8px; font-size: 12px; text-align: center; }
.prof-av-wrap { position: relative; display: block; width: 100%; margin: 0 0 8px; line-height: 0; }
.prof-av-edit { position: absolute !important; right: 10px !important; bottom: 10px !important; left: auto !important; top: auto !important; z-index: 20 !important; background: #ff2d6a !important; color: #fff !important; padding: 8px 12px; font-size: 13px; font-weight: 700; line-height: 1.2; text-decoration: none; border-radius: 4px; }
.prof-av-edit:hover { background: #ff4d88 !important; color: #fff !important; text-decoration: none; }
.prof-name { font-size: 18px; font-weight: 700; color: var(--accent2); margin-bottom: 8px; }
.prof-stats { width: 100%; border-collapse: collapse; font-size: 13px; }
.prof-stats th { text-align: left; color: var(--muted); font-weight: 400; padding: 3px 8px 3px 0; width: 48%; }
.prof-stats td { padding: 3px 0; }
.prof-connect { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.prof-connect-label { color: var(--muted); font-size: 12px; margin-bottom: 8px; }
.pblock { background: var(--panel); border: 1px solid var(--line); padding: 12px 14px; margin-bottom: 14px; }
.pblock h2 { margin: 0 0 8px; font-size: 15px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.seeall { font-size: 12px; font-weight: 400; color: var(--accent); }
.grow-list { display: flex; flex-direction: column; gap: 8px; }
.grow { display: flex; gap: 10px; align-items: center; background: #151515; border: 1px solid #2a2a2a; padding: 6px; }
.grow-thumb { width: 96px; height: 72px; flex: 0 0 96px; background: #000; overflow: hidden; display: block; }
.grow-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grow-title { color: #fff; font-weight: 700; }
.grow-meta { color: var(--muted); font-size: 12px; margin-top: 3px; }
.itag { display: inline-block; margin: 0 6px 6px 0; background: #2a2a2a; border: 1px solid #3a3a3a; padding: 2px 8px; color: #ddd; font-size: 12px; }
.mini-av { width: 28px; height: 28px; object-fit: cover; background: #000; }
.prof-now { background: #141414; border: 1px solid #2e2e2e; padding: 8px; margin: 0 0 10px; font-size: 13px; }
.prof-now-label { color: var(--accent2); font-size: 11px; text-transform: uppercase; letter-spacing: .4px; margin-bottom: 4px; }
.status-form textarea { min-height: 64px; }
.status-item { border-bottom: 1px solid #2a2a2a; padding: 8px 0; }
.status-item:last-child { border-bottom: 0; }
.status-body { margin-bottom: 4px; }
.inline-del { display: inline-flex; margin: 0; }
button.linkish { background: none; color: var(--accent); padding: 0; font-weight: 400; font-size: 12px; }
.inbox-list { display: flex; flex-direction: column; gap: 6px; }
.inbox-row { display: flex; gap: 10px; align-items: center; background: var(--panel); border: 1px solid var(--line); padding: 10px; color: #ddd; }
.inbox-open { display: flex; gap: 10px; align-items: center; flex: 1; min-width: 0; color: inherit; text-decoration: none; }
.inbox-open:hover { color: #fff; text-decoration: none; }
.inbox-row:hover { background: #222; }
.inbox-row.unread { border-color: var(--accent); background: #221a10; }
.inbox-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.inbox-user { font-weight: 700; color: #fff; }
.inbox-preview { color: var(--muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inbox-meta { color: var(--muted); font-size: 12px; text-align: right; }
.thread { background: #111; border: 1px solid var(--line); padding: 12px; margin-bottom: 14px; max-height: 520px; overflow: auto; }
.bubble { background: #1c1c1c; border: 1px solid #333; padding: 8px 10px; margin: 0 40px 8px 0; border-radius: 4px; }
.bubble.mine { background: #2a2116; border-color: #5a3d12; margin: 0 0 8px 40px; }
.dm-pic { display: inline-block; margin-top: 8px; cursor: zoom-in; }
.dm-pic img { max-width: 220px; max-height: 220px; display: block; border: 1px solid #333; }
.pop { display: none; position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.88); align-items: center; justify-content: center; padding: 24px; }
.pop.on { display: flex; }
.pop img { width: auto; height: 92vh; max-width: 98vw; max-height: 96vh; object-fit: contain; box-shadow: 0 0 24px #000; }
.pop-x { position: absolute; top: 12px; right: 16px; background: var(--accent); color: #111; border: 0; font-weight: 700; width: 36px; height: 36px; border-radius: 3px; cursor: pointer; font-size: 20px; }
.admin-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.admin-stats div { background: var(--panel); border: 1px solid var(--line); padding: 10px 14px; }
.admin-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.admin-card { display: block; background: var(--panel); border: 1px solid var(--line); padding: 16px; color: #ddd; text-decoration: none; }
.admin-card h2 { margin: 0 0 6px; color: var(--accent); font-size: 18px; }
.admin-card:hover { border-color: var(--accent); text-decoration: none; color: #fff; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th { text-align: left; color: var(--muted); font-size: 12px; padding: 6px; border-bottom: 1px solid var(--line); }
.admin-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.admin-row input[type="text"] { min-width: 140px; }
.admin-imgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin: 12px 0; }
.admin-img { background: var(--panel); border: 1px solid var(--line); padding: 8px; position: relative; }
.admin-img img { width: 100%; height: 130px; object-fit: cover; display: block; background: #000; cursor: zoom-in; }
.admin-img-meta { font-size: 12px; color: var(--muted); margin: 6px 0; line-height: 1.4; }
.admin-img-check { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.6); padding: 2px 4px; }
.admin-img-del { position: absolute; top: 10px; right: 10px; background: var(--danger); color: #fff; padding: 4px 8px; font-size: 11px; }
.avatar-actions { margin: 8px 0; }
.avatar-actions form { margin: 6px 0; }
.avatar-actions input[type="file"] { display: block; margin-bottom: 6px; font-size: 12px; }
.site-notice { background: var(--notice-bg); border-bottom: 1px solid var(--accent); color: var(--notice-text); padding: 8px 0; font-size: 13px; }
.theme-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.theme-card { display: block; background: var(--panel); border: 1px solid var(--line); padding: 12px; cursor: pointer; }
.theme-card.on { border-color: var(--accent); }
.theme-card input { margin-right: 6px; }
.theme-swatch { display: flex; height: 18px; margin: 8px 0; border: 1px solid var(--line); }
.theme-swatch span { flex: 1; }
.chat-box {
  background: var(--panel); border: 1px solid var(--line); height: 420px; overflow: auto;
  padding: 10px; margin-bottom: 12px;
}
.chat-line { padding: 4px 0; border-bottom: 1px solid var(--line); }
.chat-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.chat-form input[type=text] { flex: 1; margin: 0; }
.chat-form textarea#chat-body { flex: 1 1 100%; min-height: 88px; margin: 0; font-size: 16px; line-height: 1.4; }
.forum-post .who { display: flex; align-items: center; gap: 8px; }
.emoji-wrap { margin: 8px 0; }
.emoji-toggle { background: var(--panel2); color: var(--text); font-weight: 400; padding: 4px 8px; }
.emoji-bar { margin-top: 6px; }
.emoji-btn { background: transparent; color: inherit; font-size: 18px; padding: 2px 4px; font-weight: 400; }
@media (max-width: 820px) {
  .wrap { width: calc(100% - 16px); }
  .page { padding: 12px 0 28px; }
  .bar { flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 0; }
  .header-ad { flex: 0 0 auto; width: 100%; min-height: 0; min-width: 0; }
  .search { min-width: 0; width: 100%; }
  .search input, input, select, textarea { font-size: 16px; }
  .user-nav { flex-wrap: wrap; gap: 8px 12px; }
  .mainnav .wrap { gap: 8px 12px; padding: 8px 0; }
  .layout { grid-template-columns: 1fr; }
  .prof-grid { grid-template-columns: 1fr; }
  .prof-card { max-width: none !important; width: 100% !important; }
  .prof-av-frame { width: 100% !important; max-width: none !important; height: auto !important; aspect-ratio: 2 / 3; }
  .prof-av { width: 100% !important; height: auto !important; max-width: none !important; aspect-ratio: 2 / 3; object-fit: cover; }
  .ptabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
  .ptabs a { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 8px 6px; font-size: 13px; }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .gcard { padding: 6px; }
  .gcard h3 { min-height: 0; }
  .thumbs, .gal-thumbs { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .table, .admin-table, .blog-list, .blog-table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .form { max-width: none; }
  .blog-list-head { flex-direction: column; align-items: flex-start; }
  .chat-form { flex-wrap: wrap; }
  .chat-form textarea { width: 100%; }
  .inbox-row, .inbox-open { flex-wrap: wrap; }
  .viewer img, .viewer-video, .vplay { width: 100%; max-width: 100%; }
  button, .btn, .btn-sm, .search button { min-height: 40px; }
}
@media (max-width: 480px) {
  .logo-text { font-size: 18px; }
  h1 { font-size: 18px; }
  .grid { gap: 6px; }
  .mainnav a { font-size: 13px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .ptabs { display: grid; grid-template-columns: repeat(7, 1fr); }
  .ptabs a { padding: 7px 4px; font-size: 12px; border-right: 1px solid var(--line); border-bottom: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

.forum-mod form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.forum-mod button { padding: 4px 8px; font-size: 12px; font-weight: 400; }
.forum-mod select { width: auto; min-width: 180px; max-width: 240px; color: var(--text); background: var(--input); }
.comment-tools { display: inline-flex; align-items: center; gap: 20px; margin-left: 8px; }
.comment-replies { margin: 8px 0 12px 16px; padding-left: 12px; border-left: 2px solid var(--line); }
.comment-reply { background: var(--panel2); }
.comment-reply-form { margin: 8px 0 0; }
.comment-reply-form textarea { min-height: 56px; width: 100%; }
.blog-teaser { background: var(--panel); border: 1px solid var(--line); padding: 12px; margin-bottom: 10px; }
.blog-body { line-height: 1.55; margin: 12px 0 20px; }
.vplay { position: relative; background: #000; }
.vplay-overlay { position: absolute; inset: 0; border: 0; padding: 0; margin: 0; width: 100%; height: 100%; background-size: cover; background-position: center; cursor: pointer; }
.vplay-btn { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(0,0,0,.65); color: #fff; font-size: 28px; line-height: 64px; text-align: center; }
.vplay.is-playing .vplay-overlay { display: none; }
.chat-edit-form input[type=text] { width: auto; min-width: 180px; display: inline-block; margin: 0 6px; }
.chat-vid, .chat-live-vid { display: block; max-width: 360px; margin: 6px 0; }
.blog-author a { display: flex; align-items: center; gap: 8px; }
.blog-list-thumb { position: relative; display: inline-block; width: 72px; vertical-align: middle; margin-right: 8px; }
.blog-list-thumb img { width: 72px; height: 54px; object-fit: cover; display: block; background: #111; }
.blog-cell-thumb { width: 88px; }
.blog-table td, .blog-list td { vertical-align: middle; }
.blog-list-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.blog-list-head h1 { margin: 0; }
.note-badge { display: inline-block; min-width: 16px; padding: 0 5px; margin-left: 4px; border-radius: 10px; background: #c44; color: #fff; font-size: 11px; line-height: 16px; text-align: center; font-weight: 700; }
a.has-note { font-weight: 700; }
.staff-foot { margin-top: 8px; font-size: 13px; }
.gal-day { margin: 18px 0 8px; font-size: 16px; }

.edit-av { width: 180px; height: 240px; overflow: hidden; background: #111; border: 1px solid var(--line); }
.edit-av img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }

.member-row { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.member-row:hover { color: var(--accent2); text-decoration: none; }
.member-av { width: 48px; height: 64px; object-fit: cover; object-position: center 20%; background: #111; border: 1px solid var(--line); flex: 0 0 48px; display: block; }
