: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; }
.brand-row { display: flex; flex-direction: row; align-items: center; gap: 16px; flex: 0 1 auto; min-width: 0; }
.logo { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 22px; color: var(--accent); letter-spacing: .4px; text-decoration: none; flex: 0 0 auto; }
.logo-lockup, svg.logo-lockup { height: 104px; width: auto; display: block; }
.ad-chart { width: 100%; max-width: 860px; background: #111; border: 1px solid #333; border-radius: 6px; padding: 8px; }
.ad-chart svg { width: 100%; height: auto; display: block; }
.ad-stats-table, .ad-ip-table { width: 100%; max-width: 100%; }
.ad-stats-table td, .ad-stats-table th { white-space: nowrap; font-size: 13px; vertical-align: top; }
.ad-banner-cell img { max-width: 160px; max-height: 72px; display: block; background: #000; object-fit: contain; }
.ad-ip-cell { white-space: normal !important; max-width: 240px; overflow: hidden; }
.ad-ip-list { display: flex; flex-direction: column; gap: 4px; max-width: 100%; }
.ad-ip-list a { display: block; overflow-wrap: anywhere; word-break: break-all; }
.ad-pager { display: flex; gap: 10px; align-items: center; margin: 8px 0; flex-wrap: wrap; }
.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; white-space: nowrap; }
.logo:hover { color: var(--accent2); text-decoration: none; }
.header-ad { flex: 0 1 auto; max-width: 720px; width: auto; position: relative; min-height: 0; min-width: 0; }
.header-ad-slide { display: none; width: 100%; }
.header-ad-slide.on { display: flex; align-items: center; }
.header-ad-slide img, .header-ad img, .header-ad-html img { max-height: 104px; max-width: 100%; display: block; }
.header-ad-html { max-height: 120px; overflow: hidden; }
.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, .gcard .thumb video { width: 100%; height: 100%; object-fit: cover; display: block; image-rendering: auto; background: #111; }
.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; }
.guest-lock img, .guest-lock video { filter: blur(16px); transform: scale(1.04); }
.guest-lock { position: relative; overflow: hidden; }
.login-gate { position: fixed; inset: 0; background: rgba(0,0,0,.72); z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.login-gate[hidden] { display: none; }
.login-gate-box { background: #1a1020; color: #fff; border: 2px solid #ff2d8a; border-radius: 12px; padding: 22px 20px; max-width: 420px; width: 100%; text-align: center; }
.login-gate-box h2 { margin: 0 0 8px; }
.login-gate-box p { margin: 0 0 16px; }
.login-gate-box a, .login-gate-box button { margin: 4px; }
.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; }
.share-box { background: var(--panel); border: 1px solid var(--line); padding: 12px 14px; margin: 14px 0; }
.share-box h3 { margin: 0 0 8px; font-size: 15px; color: var(--accent2); }
.share-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.share-row input { flex: 1 1 220px; min-width: 0; }
.share-out { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.share-member { max-width: none; margin: 0; }
.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; }
.badge.off { background: #b91c1c; 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-statline { display: flex; align-items: flex-start; gap: 8px; }
.prof-statline .prof-stats { flex: 1 1 auto; min-width: 0; }
.prof-slot-ad { display: block; width: 100%; }
.prof-slot-ad img, .ad-slot img { max-width: 100%; height: auto; display: block; background: #111; }
.prof-ad-card { margin-top: 12px; }
.thumb-item.ad-thumb .ad-slot { min-height: 110px; background: #111; border: 1px solid var(--line); overflow: hidden; }
.footer-slot-ad { margin: 0 0 12px; }
.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, .grow-thumb video, .thumb-item img, .thumb-item video { width: 100%; height: 100%; object-fit: cover; display: block; background: #111; }
.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; }
.notice-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 20px; }
.notice-row { background: var(--panel); border: 1px solid var(--line); padding: 10px 12px; }
.notice-row.unread { border-color: var(--accent); background: #221a10; }
.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 !important; position: fixed; inset: 0; z-index: 10050; background: rgba(0,0,0,.88); padding: 0; }
.pop.on { display: block !important; }
.pop-bar { position: absolute; top: 0; left: 0; right: 0; height: 52px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 8px 12px; z-index: 5; }
.pop-stage { position: absolute; top: 56px; right: 16px; bottom: 16px; left: 16px; display: flex; align-items: center; justify-content: center; z-index: 1; }
.pop img, .pop video { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 0 24px #000; background: #000; }
.pop video { display: none; }
.pop-x { position: static; background: var(--accent); color: #111; border: 0; font-weight: 700; width: 44px; height: 36px; border-radius: 3px; cursor: pointer; font-size: 24px; line-height: 1; }
.pop-x:hover { background: var(--accent2); }
.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; z-index: 2; }
.admin-img > a { display: block; position: relative; }
.admin-img .play-badge { width: 36px; height: 36px; line-height: 36px; font-size: 14px; }
.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-layout { display: flex; gap: 20px; align-items: flex-start; }
.chat-main { flex: 1 1 auto; min-width: 0; }
.chat-side { flex: 0 0 220px; background: var(--panel); border: 1px solid var(--line); padding: 12px; }
.chat-side h2 { margin: 0 0 8px; font-size: 15px; }
.chat-side h2 + h2, .chat-who + h2 { margin-top: 16px; }
.chat-who { list-style: none; margin: 0; padding: 0; }
.chat-who li { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.chat-dot { width: 8px; height: 8px; border-radius: 50%; background: #3ddc84; flex: 0 0 8px; }
.chat-pm-btn { margin-left: auto; font-size: 11px; padding: 2px 8px; }
.vidchat-stage { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 360px; background: transparent; }
.vidchat-cell { position: relative; background: #111; border: 1px solid var(--line); min-height: 0; }
.vidchat-wait { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #ccc; padding: 10px; text-align: center; z-index: 1; font-size: 13px; }
.vidchat-stage img, .vidchat-stage video { display: block; width: 100%; aspect-ratio: 3/4; object-fit: cover; background: #111; cursor: default; }
.vidchat-stage #remote-vid { cursor: zoom-in; }
.vidchat-stage #local-vid { position: static; width: 100%; max-width: none; pointer-events: none; }
.vidchat-status { margin: 10px 0; }
.vidpop-stage { position: relative; width: min(96vw, 420px); max-height: 92vh; background: #000; }
.vidpop-stage #remote-vid { display: block; width: 100%; height: auto; aspect-ratio: 3/4; max-height: 88vh; object-fit: cover; background: #000; cursor: default; }
.vidpop-stage #local-vid { position: absolute !important; right: 12px; bottom: 12px; width: 30% !important; max-width: 140px; min-width: 88px; height: auto !important; aspect-ratio: 3/4; object-fit: cover; pointer-events: none; border: 3px solid #fff; border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,.55); z-index: 5; }
@media (max-width: 800px) {
  .chat-layout { flex-direction: column; }
  .chat-side { flex: 1 1 auto; width: 100%; }
}
.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; }
  .brand-row { width: 100%; flex-direction: column; align-items: flex-start; gap: 8px; }
  .ad-stats-table, .ad-ip-table { display: block; }
  .ad-stats-table thead, .ad-ip-table thead { display: none; }
  .ad-stats-table tbody, .ad-ip-table tbody { display: block; }
  .ad-stats-table tr, .ad-ip-table tr {
    display: block; margin: 0 0 12px; padding: 10px 12px;
    background: var(--panel); border: 1px solid var(--line); border-radius: 6px;
  }
  .ad-stats-table td, .ad-ip-table td {
    display: flex; justify-content: space-between; gap: 12px;
    white-space: normal; border: 0; padding: 6px 0;
    border-bottom: 1px solid #2a2a2a; font-size: 14px;
  }
  .ad-stats-table td:last-child, .ad-ip-table td:last-child { border-bottom: 0; }
  .ad-stats-table td:before, .ad-ip-table td:before {
    content: attr(data-label); color: #aaa; font-weight: 700; flex: 0 0 90px;
  }
  .ad-ip-cell { max-width: none; width: 100%; }
  .ad-ip-cell a { display: block; margin: 0 0 4px; }
  .header-ad { flex: 1 1 auto; max-width: none; width: 100%; }
  .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-lockup, svg.logo-lockup { height: 72px; }
  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; }
.view-list { display: flex; flex-direction: column; gap: 10px; margin: 10px 0 16px; }
.view-card { background: var(--panel); border: 1px solid var(--line); padding: 10px 12px; }
.view-kind { color: var(--accent); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.view-count { margin-top: 4px; font-weight: 700; }
.blog-cards { display: flex; flex-direction: column; gap: 12px; margin: 12px 0 20px; }
.blog-card { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 12px; background: var(--panel); border: 1px solid var(--line); padding: 12px; }
.blog-card-media { position: relative; display: block; background: #111; min-height: 110px; }
.blog-card-media img { width: 100%; height: 110px; object-fit: cover; display: block; }
.blog-card-body { min-width: 0; }
.blog-card-title { margin: 0 0 6px; font-size: 18px; line-height: 1.3; }
.blog-card-title a { color: inherit; text-decoration: none; }
.blog-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: var(--muted); font-size: 13px; margin-bottom: 8px; }
.blog-card-excerpt { margin: 0 0 8px; color: var(--muted); line-height: 1.45; overflow-wrap: anywhere; }
.blog-card-tools { margin-top: 4px; }
@media (max-width: 820px) {
  .blog-card { grid-template-columns: 1fr; padding: 10px; }
  .blog-card-media img { height: 180px; }
  .blog-card-title { font-size: 17px; }
}
.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; }

.status-item.is-new { border-left: 3px solid var(--accent); padding-left: 8px; }

.class-list { display: flex; flex-direction: column; gap: 8px; }
.class-card { display: flex; gap: 12px; align-items: flex-start; background: var(--panel); border: 1px solid var(--line); padding: 10px; text-decoration: none; color: inherit; }
.class-card:hover { border-color: var(--accent); text-decoration: none; }

.table-scroll { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.vault-table { min-width: 640px; }
.vault-table th, .vault-table td { padding: 6px 8px; font-size: 13px; vertical-align: middle; word-break: break-word; }
.vault-table td:nth-child(6) { max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 820px) {
  .table-scroll { margin: 0 -8px; padding: 0 8px; }
}

html, body { max-width: 100%; overflow-x: hidden; }
.vault-list { display: flex; flex-direction: column; gap: 8px; width: 100%; max-width: 100%; }
.vault-item { display: flex; gap: 10px; align-items: flex-start; background: var(--panel); border: 1px solid var(--line); padding: 8px; width: 100%; box-sizing: border-box; }
.vault-pick { flex: 0 0 auto; padding-top: 48px; }
.vault-preview { flex: 0 0 160px; position: relative; }
.vault-preview .thumb-item { width: 160px; }
.vault-preview .thumb-item a {
  display: block; position: relative; background: #000;
  aspect-ratio: 4/3; overflow: hidden; border: 1px solid var(--line);
}
.vault-preview .thumb-item img { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.vault-preview .play-badge { width: 36px; height: 36px; line-height: 36px; font-size: 14px; }
#vault-player {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: rgba(0,0,0,.92);
}
#vault-player[hidden] { display: none !important; }
#vault-player:not([hidden]) { display: block; }
.vault-player-bar {
  position: absolute; top: 0; left: 0; right: 0; height: 56px;
  display: flex; justify-content: flex-end; align-items: center;
  gap: 10px; padding: 8px 12px; box-sizing: border-box;
}
.vault-player-close {
  background: var(--accent); color: #111; border: 0; font-weight: 700;
  height: 40px; padding: 0 16px; cursor: pointer; font-size: 16px;
}
.vault-player-close:hover { background: var(--accent2); }
#vault-player video {
  position: absolute; top: 56px; left: 16px; right: 16px; bottom: 16px;
  width: calc(100% - 32px); height: calc(100% - 72px); background: #000;
}
.vault-meta { flex: 1 1 auto; min-width: 0; }
.vault-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vault-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 4px; }

.vid-call-pop { position: fixed; inset: 0; background: rgba(0,0,0,.65); z-index: 80; display: flex; align-items: center; justify-content: center; padding: 16px; }
.vid-call-pop[hidden] { display: none; }
.vid-call-card { background: var(--panel); border: 2px solid var(--accent); padding: 20px 18px; max-width: 340px; width: 100%; text-align: center; }
.vid-call-title { margin: 0 0 6px; font-size: 18px; color: var(--accent); }
.vid-call-from { margin: 0 0 16px; font-size: 16px; }
.vid-call-actions { display: flex; gap: 10px; justify-content: center; }
.vid-call-accept { background: #16a34a !important; color: #fff !important; text-decoration: none; padding: 10px 18px; }
.wordban-pop { position: fixed; inset: 0; background: rgba(0,0,0,.72); z-index: 10060; display: flex; align-items: center; justify-content: center; padding: 16px; }
.wordban-pop[hidden] { display: none; }
.wordban-card { background: var(--panel); border: 2px solid #b91c1c; max-width: 440px; width: 100%; padding: 20px 18px; text-align: center; }
.wordban-card h2 { margin: 0 0 8px; color: #f87171; font-size: 20px; }
.wordban-card p { margin: 0 0 14px; }
.wordban-words { color: #fff; font-weight: 700; }
.wordban-card button { background: var(--accent); color: #111; border: 0; padding: 10px 18px; font-weight: 700; cursor: pointer; }



.like-form { display: inline-block; margin: 6px 0 0; }
.like-btn { background: transparent; color: var(--accent); border: 1px solid var(--accent); padding: 2px 8px; font-size: 12px; cursor: pointer; }
.like-btn.liked { background: var(--accent); color: #111; }
.like-count { font-size: 12px; color: var(--muted); }

.verified-badge { font-size: 16px; vertical-align: middle; }

.admin-user-list { display: flex; flex-direction: column; gap: 10px; max-width: 820px; }
.admin-user-card { display: flex; gap: 12px; align-items: flex-start; background: var(--panel); border: 1px solid var(--line); padding: 12px; }
.admin-user-av { flex: 0 0 48px; }
.admin-user-av img { width: 48px; height: 64px; object-fit: cover; object-position: center 20%; display: block; background: #111; }
.admin-user-body { flex: 1 1 auto; min-width: 0; }
.admin-user-name { font-weight: 700; margin-bottom: 4px; word-break: break-word; }
.admin-user-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0; font-size: 13px; }
.admin-user-meta span { overflow-wrap: anywhere; }
.admin-user-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.admin-user-actions .inline-del { margin: 0; }
@media (max-width: 600px) {
  .admin-user-card { flex-direction: row; }
}

.react-bar { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 6px 0; }
.react-form { display: inline; margin: 0; }
.react-btn { background: var(--panel2, #222); border: 1px solid var(--line, #333); color: var(--text, #eee); padding: 2px 7px; cursor: pointer; border-radius: 12px; font-size: 14px; line-height: 1.3; }
.react-btn.on { border-color: var(--accent); background: rgba(255,255,255,.06); }
.react-wrap { margin: 8px 0; }

.vidchat.zoomed { position: fixed; inset: 0; z-index: 2100; background: #000; margin: 0; padding: 0; max-width: none; }
.vidchat.zoomed .vidchat-stage { display: block; position: relative; max-width: none; width: 100%; height: 100%; gap: 0; }
.vidchat.zoomed #remote-cell { position: absolute; inset: 0; }
.vidchat.zoomed #remote-vid { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; cursor: default; }
.vidchat.zoomed #local-cell { position: absolute; right: 14px; bottom: 14px; width: 112px; z-index: 6; border: 3px solid #fff; border-radius: 4px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.5); }
.vidchat.zoomed #local-vid { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.vidchat.zoomed .vidchat-wait { display: none; }
.vidchat.zoomed .vidchat-status, .vidchat.zoomed #vid-hint, .vidchat.zoomed #staff-review { display: none; }
.vidchat.zoomed #vid-hangup, .vidchat.zoomed .btn-sm { position: relative; z-index: 7; }
.vidchat.zoomed .pop-x { display: block; position: fixed; top: 12px; right: 16px; z-index: 12; }

#vid-zoom { display: none; position: fixed; inset: 0; z-index: 99999; background: #000; }
#vid-zoom.on { display: block; }
#vid-zoom #remote-vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; aspect-ratio: auto; background: #000; }
#vid-zoom #local-vid { position: absolute; right: 14px; bottom: 14px; width: 110px; height: 146px; object-fit: cover; border: 3px solid #fff; border-radius: 4px; z-index: 2; background: #111; }
#vid-zoom #vid-zoom-x { position: fixed; top: 12px; right: 16px; z-index: 100000; }

#vid-zoom:not(.on) { display: none !important; }
#vid-zoom:not(.on) #vid-zoom-x { display: none !important; }
.pop-x { display: none; }
#vid-zoom.on .pop-x, .pop.on .pop-x { display: flex !important; align-items: center; justify-content: center; }

.vidchat-cell #live1, .vidchat-cell #live2 { display:block; width: 100%; aspect-ratio: 3/4; object-fit: cover; background: #000; }
.vidchat-cell #snap1, .vidchat-cell #snap2 { display: block; width: 100%; aspect-ratio: 3/4; object-fit: cover; background: #111; }

.log-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 16px; }
.log-filters input[type=text] { flex: 1 1 180px; margin: 0; min-width: 0; }
.log-filters select { margin: 0; }
.log-list { display: flex; flex-direction: column; gap: 8px; max-width: 820px; }
.log-card { display: flex; gap: 10px; align-items: flex-start; background: var(--panel); border: 1px solid var(--line); padding: 10px 12px; }
.log-check { flex: 0 0 auto; padding-top: 4px; }
.log-av { flex: 0 0 36px; }
.log-list .log-av img { width: 36px !important; height: 48px !important; max-width: 36px !important; object-fit: cover; object-position: center 20%; display: block; background: #111; }
.log-body { flex: 1 1 auto; min-width: 0; }
.log-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 4px; }
.log-act { display: inline-block; background: var(--panel2, #222); border: 1px solid var(--line); border-radius: 999px; padding: 1px 8px; font-size: 12px; font-weight: 700; }
.log-when { color: var(--muted); font-size: 12px; }
.log-who { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 14px; }
.log-ip { color: var(--muted); font-size: 12px; word-break: break-all; }
.log-detail { margin: 6px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.log-del { flex: 0 0 auto; }
.log-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 600px) {
  .log-card { flex-wrap: wrap; }
  .log-del { margin-left: auto; }
}

.bm-layout { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }
.bm-main { flex: 1 1 420px; min-width: 0; }
.bm-side { flex: 0 1 220px; }

a.mention { color: var(--accent2); font-weight: 700; }

.promo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; margin:16px 0 28px; }
.promo-thumb { display:block; background:var(--panel); border:1px solid var(--line); color:inherit; text-decoration:none; }
.promo-thumb img { width:100%; height:180px; object-fit:cover; display:block; }
.promo-thumb span { display:block; padding:6px 8px; font-size:13px; color:var(--muted); }
.promo-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; margin:12px 0; }
.promo-admin-card { background:var(--panel); border:1px solid var(--line); padding:8px; }
.promo-admin-card img { width:100%; height:140px; object-fit:cover; display:block; margin-bottom:8px; }
.tbl input[type=text] { width:100%; max-width:280px; }


/* Footer ad: in the footer on mobile portrait, under categories on larger screens / landscape */
.footer-ad-side { display: none; margin-top: 14px; }
.footer-ad-foot { display: block; }
@media (min-width: 821px), (orientation: landscape) {
  body.page-home .footer-ad-side { display: block; }
  body.page-home .footer-ad-foot { display: none; }
}


/* Admin delete-photo button on every profile */
.prof-av-del { position: absolute; left: 10px; top: 10px; z-index: 21; margin: 0; }
.prof-av-del button { background: #111; color: #fff; border: 2px solid #fff; padding: 8px 12px; font-weight: 700; border-radius: 4px; cursor: pointer; }


.guest-url { max-width: 360px; word-break: break-all; overflow-wrap: anywhere; }
.guest-url a { color: var(--accent, #ff8a00); }


.chat-file { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted, #aaa); }
.chat-send-err { flex: 1 1 100%; color: #f87171; margin: 4px 0 0; }
.chat-line .dm-pic { display: block; margin: 6px 0; }
.chat-line .dm-pic img { max-width: 240px; max-height: 240px; width: auto; height: auto; display: block; background: #111; }

.chat-attach { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; width: 100%; }
.chat-file { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 14px; background: var(--panel2, #222); color: var(--text, #eee); border: 1px solid var(--line, #444); border-radius: 3px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.chat-file:hover { border-color: var(--accent); color: var(--accent2); }
.chat-file input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 0; }
.chat-file-name { flex: 1 1 160px; min-width: 0; color: var(--muted, #aaa); font-size: 13px; overflow-wrap: anywhere; }
.chat-file-preview { display: block; max-width: 160px; max-height: 160px; margin-top: 8px; border: 1px solid var(--line, #333); background: #111; }
.chat-send-err { flex: 1 1 100%; color: #f87171; margin: 6px 0 0; font-weight: 700; }
.chat-line .dm-pic { display: block; margin: 8px 0; }
.chat-line .dm-pic img { max-width: min(100%, 280px); max-height: 280px; width: auto; height: auto; display: block; background: #111; border: 1px solid #333; }


.chat-edit-btn, .chat-edit-cancel { margin-left: 6px; }
.chat-edit-form { margin-top: 4px; }
.chat-edit-form[hidden] { display: none !important; }
.chat-edit-form input[type=text] { width: min(100%, 280px); }


/* Affiliate banner stats cards */
.aff-summary, .aff-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.aff-summary div, .aff-metrics div { background: var(--panel); border: 1px solid var(--line); padding: 10px; min-width: 0; }
.aff-summary span, .aff-metrics span { display: block; color: var(--muted); font-size: 12px; }
.aff-summary strong, .aff-metrics b { display: block; font-size: 20px; line-height: 1.1; margin: 2px 0; }
.aff-summary em, .aff-metrics em { display: block; color: var(--muted); font-style: normal; font-size: 12px; }
.aff-list { display: flex; flex-direction: column; gap: 12px; }
.aff-card { background: var(--panel); border: 1px solid var(--line); padding: 12px; }
.aff-head { display: flex; align-items: center; gap: 12px; }
.aff-banner { flex: 0 0 92px; height: 52px; background: #111; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.aff-banner img { max-width: 100%; max-height: 52px; display: block; object-fit: contain; }
.aff-banner span { color: var(--muted); font-size: 12px; }
.aff-title { flex: 1 1 auto; min-width: 0; }
.aff-title strong, .aff-title span { display: block; overflow-wrap: anywhere; }
.aff-title span { color: var(--muted); font-size: 12px; text-transform: capitalize; }
.aff-ctr { text-align: right; font-weight: 700; color: var(--accent2); }
.aff-ctr small { display: block; color: var(--muted); font-weight: 400; }
.aff-foot { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.aff-ips summary { cursor: pointer; font-weight: 700; }
.aff-ip-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.aff-ip-list a { background: #111; border: 1px solid var(--line); padding: 4px 8px; font-size: 12px; }
@media (min-width: 700px), (orientation: landscape) and (min-width: 640px) {
  .aff-summary, .aff-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .aff-foot { flex-direction: row; align-items: flex-start; justify-content: space-between; }
  .aff-banner { flex-basis: 140px; height: 64px; }
  .aff-banner img { max-height: 64px; }
}

.aff-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.aff-check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.aff-tools button { background: var(--panel2, #222); color: var(--text, #eee); border: 1px solid var(--line, #444); padding: 7px 12px; font-weight: 700; cursor: pointer; }
.aff-clear-all { border-color: #7f1d1d !important; color: #fecaca !important; }

.viewer-filter { display: flex; align-items: center; gap: 8px; margin: 0; }
.viewer-filter select { min-width: 140px; }


/* Snapseed-style photo filters */
.fx { position: relative; display: block; overflow: hidden; }
.fx img { display: block; width: 100%; height: auto; }
.thumbs .fx, .thumbs .fx img { height: 100%; object-fit: cover; }
.fx-frame { height: 120px; }
.fx-frame img { width: 100%; height: 120px; object-fit: cover; background: #111; border: 1px solid #333; }
.fx::after, .fx::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.fx::after { background: none; }
.fx::before { background: none; mix-blend-mode: screen; }
.fx-drama img { filter: contrast(1.7) saturate(0.7) brightness(0.82) sepia(0.15) hue-rotate(-8deg); }
.fx-drama::after { background: radial-gradient(circle, transparent 42%, rgba(0,0,0,.62) 100%); }
.fx-hdr img { filter: contrast(1.35) saturate(1.55) brightness(1.18); }
.fx-hdr::after { background: radial-gradient(circle, transparent 55%, rgba(0,0,0,.28) 100%); }
.fx-vintage img { filter: sepia(0.55) contrast(0.9) brightness(1.12) saturate(0.65); }
.fx-vintage::after { background: radial-gradient(circle, transparent 40%, rgba(70,40,10,.55) 100%); }
.fx-retrolux img { filter: sepia(0.35) contrast(0.85) brightness(1.2) saturate(0.8) hue-rotate(-6deg); }
.fx-retrolux::before { background: radial-gradient(circle at 12% 8%, rgba(255,170,60,.55), transparent 42%); }
.fx-retrolux::after { background: radial-gradient(circle, transparent 46%, rgba(40,20,0,.4) 100%); }
.fx-noir img { filter: grayscale(1) contrast(1.7) brightness(0.85); }
.fx-noir::after { background: radial-gradient(circle, transparent 38%, rgba(0,0,0,.7) 100%); }
.fx-portrait img { filter: brightness(1.12) contrast(0.9) saturate(1.15) sepia(0.18); }
.fx-portrait::before { background: radial-gradient(circle, rgba(255,220,180,.18), transparent 62%); }
.fx-pop img { filter: saturate(1.85) contrast(1.25) brightness(1.06); }
.fx-silhouette img { filter: contrast(1.8) brightness(0.7) saturate(0.6); }
.fx-silhouette::after { background: radial-gradient(circle, transparent 30%, rgba(0,0,0,.72) 100%); }
.fx-bright img { filter: brightness(1.35) contrast(0.85) saturate(1.05); }
.fx-fineart img { filter: saturate(0.45) contrast(1.1) brightness(1.05) sepia(0.12); }
.fx-fineart::after { background: radial-gradient(circle, transparent 50%, rgba(0,0,0,.35) 100%); }
.fx-focus img { filter: contrast(1.15) saturate(1.1) brightness(1.05); }
.fx-focus::after { background: radial-gradient(circle, transparent 28%, rgba(0,0,0,.72) 100%); }
.fx-grunge img { filter: saturate(0.45) contrast(1.45) brightness(0.92) sepia(0.25); }
.fx-grunge::after { background: radial-gradient(circle, transparent 34%, rgba(20,10,0,.55) 100%); }
.viewer .fx img { max-width: 100%; }
