/* ==== Meet — dark theme ==== */
/* OLD ACCENT (pre-recolor, kept for reference):
   --accent:#E41779;
   hover/dark variants used: #8a7350, #7a5e3e
   rgba glow used: rgba(167,139,99, X)
*/
:root{
    --bg:#020F17;
    --bg2:#091e2c;
    --bg3:#0a1f2e;
    --line:#13283a;
    --text:#dde4ea;
    --muted:#9aabb7;
    --accent:#A78B63;
    --accent2:#9B59B6;
    --white:#fff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.6 'Montserrat',Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip;overscroll-behavior:none;max-width:100vw;width:100%;position:relative}
body{min-height:100vh;display:flex;flex-direction:column}
body > main{flex:1 0 auto}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--white)}
img{max-width:100%;display:block}
h1,h2,h3,h4,h5,h6{font-family:'Montserrat',Arial,sans-serif;color:var(--white);font-weight:800;line-height:1.2;margin:0 0 .6em}
h1{font-size:2.4rem}
h2{font-size:1.8rem}
h3{font-size:1.3rem}
.container{max-width:1180px;margin:0 auto;padding:20px 20px 10px}
.muted{color:var(--muted)}
.eyebrow{color:var(--accent);text-transform:uppercase;font-weight:700;font-size:.78rem;letter-spacing:.15em;margin-bottom:.5rem}

/* ==== Header ==== */
.topbar{background:var(--bg2);border-bottom:1px solid var(--line);padding:8px 0;font-size:.8rem;color:var(--muted)}
.topbar a{color:var(--muted);margin-left:14px}
.topbar a:hover{color:var(--accent)}
.admin-bar{background:var(--bg2);border-bottom:1px solid var(--line);font-size:.78rem;position:sticky;top:0;z-index:51}
.admin-bar-inner{max-width:1180px;margin:0 auto;padding:6px 20px;display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.admin-bar a{color:var(--muted);text-transform:uppercase;font-weight:600;letter-spacing:.1em;white-space:nowrap}
.admin-bar a:hover,.admin-bar a.active{color:var(--accent)}
.admin-bar .admin-bar-logout{margin-left:auto}
.admin-bar-icons{display:none}
header.site{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
body:has(.admin-bar) header.site{top:30px}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;max-width:1180px;margin:0 auto}
.logo{display:inline-flex;align-items:center;font-size:1.6rem;font-weight:800;color:var(--white);letter-spacing:.04em}
.logo img{display:block;height:40px;width:234px}
.logo span{color:var(--accent)}
.menu{display:flex;gap:24px;align-items:center}
.menu a{color:var(--text);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.12em}
.menu a.active,.menu a:hover{color:var(--accent)}
.btn{display:inline-block;padding:10px 22px;border-radius:50px;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.12em;cursor:pointer;border:0;transition:.2s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:#8a7350;color:#fff}
.btn-outline{border:2px solid var(--accent);color:var(--accent);background:transparent}
.btn-outline:hover{background:var(--accent);color:#fff}
.menu a.btn-outline:hover{color:#fff}
header.site .menu .btn-primary:hover{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px var(--accent)}
.btn-ghost{border:1px solid var(--line);color:var(--text);background:transparent}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.filters-row > a.btn-ghost{border-color:#fff;color:#fff}
.filters-row > a.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:6px 14px;font-size:.7rem}

/* ==== Hero ==== */
.hero{position:relative;padding:140px 0 120px;overflow:hidden;min-height:520px;background:linear-gradient(90deg,rgba(2,15,23,.95) 0%,rgba(2,15,23,.7) 40%,rgba(2,15,23,.15) 100%),radial-gradient(ellipse at 30% 50%,rgba(167,139,99,.22),transparent 55%),url('/img/hero.jpg?v=1') right center/cover no-repeat,linear-gradient(180deg,#02101a 0%,#031521 100%)}
.hero .container{position:relative;z-index:1}
.hero h1{font-size:3rem}
.hero p{font-size:1.05rem;max-width:560px;color:var(--muted);margin-bottom:30px}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap}

/* ==== Landing (home, simple for everyone) ==== */
body.is-landing header.site,
body.is-landing footer.site,
body.is-landing .admin-bar,
body.is-landing .topbar,
body.is-landing .chat-fab,
body.is-landing .chat-panel{display:none !important}
body.is-landing,body.is-landing html{overflow:hidden;height:100%}
body.is-landing main{height:100dvh;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.home-landing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:60px;padding:40px 20px;text-align:center;max-height:100%;box-sizing:border-box}
.elements-circle{width:min(360px,72vw);aspect-ratio:1;border:1.5px solid var(--accent);border-radius:50%;position:relative;display:block}
.elements-dots{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:30px}
.elements-dots .el-item{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px}
.elements-dots .dot{width:18px;height:18px;border-radius:50%;background:var(--accent);display:block}
.elements-dots .label{position:absolute;left:50%;transform:translateX(-50%);font-size:1rem;color:var(--accent);white-space:nowrap;letter-spacing:.04em;font-weight:500}
.elements-dots .el-top .label{bottom:calc(100% + 10px)}
.elements-dots .el-bottom .label{top:calc(100% + 10px)}
.elements-logo{position:absolute;top:70%;left:50%;transform:translate(-50%,-50%);width:72%;height:auto;display:block}
.elements-access{font-size:1rem;color:var(--accent);text-decoration:none;letter-spacing:.12em;text-transform:uppercase;font-weight:500;padding:6px 4px;transition:.2s}
.elements-access:hover{color:#fff}
@media(max-width:780px){
  .home-landing{gap:32px;padding:20px 16px}
  .elements-circle{width:min(320px,80vw)}
  .elements-dots{gap:26px}
  .elements-dots .el-item,.elements-dots .dot{width:16px;height:16px}
  .elements-dots .label{font-size:.9rem}
  .elements-access{font-size:.85rem}
}
@media(max-height:640px){
  .home-landing{gap:20px;padding:12px 16px}
  .elements-circle{width:min(260px,70vw)}
}
@media(max-width:780px){
  .hero{padding:30px 0 220px;min-height:0;background:linear-gradient(180deg,rgba(2,15,23,.92) 0%,rgba(2,15,23,.72) 22%,rgba(2,15,23,.2) 45%,rgba(2,15,23,0) 70%),url('/img/hero_mobile.jpg?v=1') center center/cover no-repeat,linear-gradient(180deg,#02101a 0%,#031521 100%)}
  .hero h1{font-size:1.8rem}
  .hero p{font-size:.92rem;margin-bottom:20px}
}

/* ==== Sections ==== */
section.block{padding:80px 0;background:var(--bg)}
section.block.alt{background:var(--bg2)}
.section-head{text-align:center;margin-bottom:50px}
.section-head h2{font-size:2.2rem}

/* ==== Cards / profile grid ==== */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:0 20px}
@media(max-width:780px){.steps-grid{grid-template-columns:1fr}}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:.25s;position:relative}
.card:hover{transform:translateY(-4px);border-color:var(--accent)}
.card .ph{position:relative;padding-top:130%;background:#0a1a26;overflow:hidden}
.card .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.4s}
.card:hover .ph img{transform:scale(1.05)}
.card .body{padding:18px}
.card h3{font-size:1.05rem;margin:0 0 4px}
.card .meta{color:var(--muted);font-size:.82rem;margin-bottom:10px}
.card .params{list-style:none;padding:0;margin:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:.78rem;color:var(--muted)}
.card .params li b{color:var(--text);font-weight:600}
.card .lock{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.65);padding:4px 10px;border-radius:50px;font-size:.72rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;z-index:3}
.card .full-link{position:absolute;inset:0;z-index:2}
.card .ph .body{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 12px;background:linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 35%, rgba(0,0,0,.88) 100%);color:#fff;z-index:2;pointer-events:none}
.card .ph .body h3{color:#fff;font-size:1.25rem;margin:0 0 4px;line-height:1.2;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.card .ph .body .meta{color:rgba(255,255,255,.92);font-size:.78rem;margin-bottom:0;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.card .ph .body .meta.lang{color:rgba(255,255,255,.78);font-size:.72rem;margin-top:3px}

/* ==== Filters ==== */
.filters-toggle{display:none;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:10px 14px;border-radius:6px;font:inherit;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;width:100%;justify-content:flex-start;margin-bottom:10px;transition:.15s}
.filters-toggle:hover{border-color:var(--accent);color:var(--accent)}
.filters-toggle.is-open{border-color:var(--accent);color:var(--accent)}
.filters-toggle svg{flex:0 0 16px}
.filters-toggle .filters-count-badge{margin-left:auto;background:var(--bg3);color:var(--white);padding:2px 10px;border-radius:50px;font-size:.78rem;letter-spacing:0;text-transform:none;font-weight:700}
@media(max-width:780px){
  .filters-toggle{display:none}
  body:has(.admin-bar) .filters-toggle{display:none}
}
.filters{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;position:sticky;top:80px;z-index:40;overflow-x:visible}
body:has(.admin-bar) .filters{top:110px}
.filters > .filters-row{flex:1 1 auto;min-width:0}
.filters > .filters-actions{flex:0 0 auto;display:flex;gap:8px;align-items:center}
.filters-row{display:flex;flex-wrap:nowrap;gap:8px;align-items:center}
.filters-fab{display:none}
.filters-backdrop{display:none}
.filters-close-btn{display:none}
.filters-submit-m{display:none}
.f-name-wrap{position:relative;flex:1 1 0;min-width:0}
.f-name-wrap .f-name{width:100%;padding-right:30px}
.filters-row > .ms{flex:1 1 0;min-width:0}
.filters-row > .ms .ms-toggle{border-radius:50px;padding-left:14px;padding-right:14px}
.filters-row > .ms.expanded .ms-toggle{border-radius:18px}
.f-name-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1.2rem;line-height:1;padding:0;display:none;align-items:center;justify-content:center;border-radius:50%}
.f-name-clear.is-visible{display:inline-flex}
.f-name-clear:hover{color:var(--accent);background:rgba(255,255,255,.06)}
.filters-close-x{display:none}
.filters-row > .spacer{flex:1 1 auto}
.menu-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text);padding:6px 8px;line-height:0}
.menu-icon:hover,.menu-icon.active{color:var(--accent)}
.burger{display:none;background:transparent;border:0;cursor:pointer;padding:8px;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px}
.burger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:.2s}
.burger:hover span{background:var(--accent)}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.fake-mark{color:var(--muted);font-size:.78rem;font-weight:600;margin-left:6px;opacity:.7}
.filters .f-age{flex:1 1 0;min-width:0}
.f-age .age-trigger{font-size:.78rem;padding:0 12px}
.filters .ms-wide{flex:1 1 auto}
.filters-count{font-size:1rem;font-weight:700;color:var(--white);background:#000;border-radius:50px;white-space:nowrap;padding:6px 14px;min-width:88px;height:34px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;order:2}
.filters-reset .filters-reset-icon{display:none}
.filters-actions .filters-reset{min-width:88px;text-align:center;order:1;border:1px solid var(--accent);color:var(--accent);background:transparent}
.filters-actions .filters-reset:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-icon{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px}
.btn-icon svg{display:block}
.filters .btn.btn-icon{width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.ms-region.is-done{opacity:.35;pointer-events:none}
.load-more-wrap{display:flex;justify-content:center;margin:24px 0 8px}
.load-more-wrap .btn{min-width:200px}
.fav-btn{position:absolute;top:10px;right:10px;z-index:3;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:0;background:rgba(0,0,0,.55);border-radius:50%;color:#fff;cursor:pointer;transition:background .15s,transform .15s}
.fav-btn:hover{background:rgba(0,0,0,.75);transform:scale(1.06)}
.fav-btn svg path{fill:none;stroke:currentColor;stroke-width:2}
.fav-btn.is-fav{color:#fff;background:rgba(0,0,0,.7)}
.fav-btn.is-fav svg path{fill:currentColor;stroke:currentColor}
.fav-btn.fav-remove{font-size:1.4rem;line-height:1;font-weight:700;background:rgba(0,0,0,.65)}
.fav-btn.fav-remove:hover{background:#7a5e3e;color:#fff;transform:scale(1.06)}
.fav-star{color:var(--accent);margin-left:6px;cursor:default;font-size:1.1rem}

.admin-side-panel{margin-top:16px;padding:14px;background:var(--bg2);border:1px solid var(--accent);border-radius:6px}
.admin-side-panel .admin-side-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-top:10px;align-items:center}
.admin-side-panel .admin-side-meta strong{color:var(--text)}

/* Heart-shaped favorite toggle */
.fav-heart{background:none;border:0;padding:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:var(--muted);transition:.15s}
.fav-heart svg{fill:none;stroke:currentColor;stroke-width:2}
.fav-heart:hover{color:var(--accent);transform:scale(1.1)}
.fav-heart.is-fav{color:var(--accent)}
.fav-heart.is-fav svg{fill:currentColor;stroke:currentColor}
.card .ph{position:relative}
.card .meta.lang{color:var(--muted);font-size:.78rem;margin-top:2px}
.filters input,.filters select{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:7px 12px;border-radius:50px;font:inherit;font-size:.82rem;min-width:0;flex:1 1 0;height:34px}

/* ==== Multi-select ==== */
.ms{position:relative;flex:1 1 0;min-width:0}
/* Suppress pre-init FOUC: hide raw <label> children until filters.js wraps them in .ms-dropdown. */
.ms > label{display:none}
.ms-toggle{width:100%;height:34px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 8px;border-radius:6px;font:inherit;font-size:.82rem;text-align:left;cursor:pointer;position:relative;display:flex;flex-wrap:nowrap;align-items:center;gap:4px;overflow:hidden;box-sizing:border-box}
body.page-profile .ms-toggle{border-radius:6px;padding-left:14px;padding-right:14px;background:var(--bg2)}
body.page-profile .ms-placeholder{display:none}
body.page-profile .ms-chip{background:#A58B62;border-color:#A58B62;color:#fff;border-radius:4px;padding:2px 7px 2px 7px}
body.page-profile .ms-dropdown label.is-selected,
body.page-profile .ms-dropdown label.is-selected:hover{background:#A58B62;color:#fff}
body.page-profile .ms.expanded .ms-toggle{border-radius:6px}
.ms.ms-wide .ms-toggle{width:calc(100% - 80px)}
.ms:not(.ms-wide) .ms-toggle{width:calc(100% - 30px)}
.ms.expanded .ms-toggle{height:auto;min-height:34px;flex-wrap:wrap;overflow:visible;border-radius:6px}
.ms-toggle .ms-placeholder{color:var(--muted);padding:0 4px}
.ms-chip{display:inline-flex;align-items:center;gap:2px;background:var(--bg3);border:1px solid var(--line);border-radius:50px;padding:2px 4px 2px 10px;font-size:.78rem;line-height:1.2;color:var(--white);white-space:nowrap;max-width:100%}
.ms-chip-x{cursor:pointer;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;opacity:.6;flex-shrink:0}
.ms-chip-x:hover{opacity:1;background:rgba(255,255,255,.12)}
.ms-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:220px;max-width:320px;max-height:280px;overflow-y:auto;background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:6px;z-index:60;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ms.ms-cols-2.open .ms-dropdown{display:grid;grid-template-columns:1fr 1fr;gap:2px;min-width:340px;max-width:380px;max-height:none;overflow:visible}
.ms.ms-cols-2 .ms-dropdown label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms.ms-cols-2 .ms-add{display:none}
.ms.ms-cols-2 .ms-toggle .ms-chip-x{display:none}
/* ms-cols-2 (Languages) hides the + add button — reclaim the 30px reservation
   that .ms:not(.ms-wide) .ms-toggle allocates for it, so toggle fills 100%. */
.ms.ms-cols-2:not(.ms-wide) .ms-toggle{width:100%}
.ms-dropdown-close{display:none}
.ms.open .ms-dropdown{display:block}
.ms-dropdown label{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:.85rem;white-space:nowrap}
.ms-dropdown label:hover{background:var(--bg3)}
.ms-dropdown label.is-selected{background:rgba(167,139,99,.18);color:var(--white);font-weight:700}
.ms-dropdown label.is-selected:hover{background:var(--accent);color:#fff}
.ms-dropdown label.is-filtered{display:none}
.ms-dropdown input[type=checkbox]{display:none}
.ms-dropdown:empty:before,.ms-dropdown.all-selected:before{content:'— all selected —';color:var(--muted);font-size:.78rem;padding:6px 8px;display:block}
.ms-search{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:6px 10px;border-radius:4px;font:inherit;font-size:.82rem;margin-bottom:6px;box-sizing:border-box;position:sticky;top:0;z-index:1}
.ms-search:focus{outline:0;border-color:var(--accent)}
.ms-regions{display:flex;flex-wrap:wrap;gap:4px;padding:0 4px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.ms-region{background:var(--bg3);border:1px solid var(--line);color:var(--white);padding:4px 10px;border-radius:50px;font:inherit;font-size:.74rem;font-weight:600;cursor:pointer;white-space:nowrap}
.ms-region:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.ms-group-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--white);padding:8px 8px 4px;font-weight:800}
.ms-group + .ms-group{border-top:1px solid var(--line);margin-top:4px}
.ms-group.is-empty{display:none}
.ms-clear,.ms-add,.ms-expand{position:absolute;top:50%;transform:translateY(-50%);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.06);color:var(--text);cursor:pointer;line-height:1;user-select:none;z-index:2;font-weight:600}
.ms-clear:hover,.ms-add:hover,.ms-expand:hover{background:var(--accent);color:#fff}
/* ms-wide (Country): three icons */
.ms.ms-wide .ms-expand{right:6px;font-size:.8rem}
.ms.ms-wide .ms-add{right:32px;font-size:1rem}
.ms.ms-wide .ms-clear{right:58px;font-size:1rem;display:none}
.ms.ms-wide .ms-toggle.has ~ .ms-clear{display:inline-flex}
.ms.ms-wide.expanded .ms-expand{transform:translateY(-50%) rotate(180deg)}
/* non-wide (Gender, Language): only + */
.ms:not(.ms-wide) .ms-clear,.ms:not(.ms-wide) .ms-expand{display:none !important}
.ms:not(.ms-wide) .ms-add{right:6px;font-size:1rem}
.ms:not(.ms-wide) .ms-toggle{padding-right:34px}

/* sidebar variant (admin) */
.admin-search .ms{flex:none;margin-bottom:6px}

/* ==== Range slider ==== */
.range-slider{position:relative;flex:1 1 0;min-width:160px;height:34px;display:flex;align-items:flex-end;padding:0 10px 6px}
.range-slider .rs-track{position:relative;height:4px;background:var(--line);border-radius:2px;width:100%}
.range-slider .rs-fill{position:absolute;height:100%;background:#888;border-radius:2px}
.range-slider .rs-handle{position:absolute;top:50%;width:14px;height:14px;background:#888;border:2px solid var(--bg);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;z-index:2}
.range-slider .rs-handle:active{cursor:grabbing}
.range-slider .rs-label{position:absolute;top:2px;left:10px;right:10px;text-align:center;font-size:.66rem;line-height:1;color:var(--muted);white-space:nowrap;pointer-events:none}
.filters input[type=number]{flex:0 0 80px}
.filters input:focus,.filters select:focus{outline:0;border-color:var(--accent)}
.filters .btn{flex:0 0 auto;height:34px;padding:0 16px;line-height:34px}
@media(max-width:780px){
  .filters-fab{display:flex;position:fixed;bottom:20px;right:20px;height:44px;border-radius:50px;background:#fff;color:var(--accent);border:0;align-items:center;justify-content:center;z-index:9990;box-shadow:0 6px 18px rgba(0,0,0,.4);cursor:pointer;padding:0 22px;font-weight:700;letter-spacing:.06em;font-size:.95rem}
  .filters-fab:hover,.filters-fab:active{background:#f0f0f0}
  .filters-fab[hidden]{display:none}
  .filters-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9995;display:block;animation:filters-fade-in .2s ease}
  .filters-backdrop[hidden]{display:none}
  body.filter-open{overflow:hidden}

  .filters{position:fixed;top:auto;bottom:0;right:-80vw;width:80vw;max-width:80vw;height:fit-content;max-height:90vh;display:block;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px 0 0 0;transition:right .3s ease;z-index:9996;margin:0;padding:0;overflow:hidden}
  /* Override desktop sticky-top offset on mobile so the bottom-pinned panel
     isn't yanked back to top when an admin-bar is present. */
  body:has(.admin-bar) .filters{top:auto}
  .filters.is-open{right:0}
  .filters.is-collapsed{right:-80vw}
  body.filter-open .filters-fab{display:none}

  /* Filter fields: size to content (no empty space below); scroll only if
     they exceed the panel's max-height. Layout grid:
       row1  search  search
       row2  country age
       row3  lang    lang */
  .filters > .filters-row{
    overflow-y:auto;padding:15px;
    display:grid;grid-template-columns:repeat(2, minmax(0,1fr));
    grid-template-areas:"search search" "country country" "age age" "lang lang";
    gap:12px;align-items:stretch;
    min-width:0;width:100%;box-sizing:border-box;max-height:calc(90vh - 70px);
  }
  .filters-row > .f-name-wrap{grid-column:1 / -1;width:auto;min-width:0;max-width:none}
  .filters-row > .f-country-compact{grid-column:1 / -1;width:auto;min-width:0;max-width:none}
  .filters-row > .age-picker{grid-column:1 / -1;width:auto;min-width:0;max-width:none}
  .filters-row > .ms{grid-column:1 / -1;width:auto;min-width:0;max-width:none}
  .filters-row > .ms .ms-toggle{width:100%}
  .filters-row > .f-country-compact .cs,
  .filters-row > .f-country-compact .cs-trigger{width:100%}

  /* Actions bar layout (left → right): count (fills) → Reset → × close */
  .filters > .filters-actions{flex:0 0 auto;padding:12px 14px;border-top:0;display:flex;gap:8px;align-items:center;background:var(--bg2);box-sizing:border-box}
  .filters-actions .filters-submit{display:none}
  .filters-actions .filters-close-btn{display:none}
  .filters-actions .filters-count{display:inline-flex;flex:1 1 auto;background:#000;color:var(--white);min-width:0;order:1}
  /* Reset rendered as a circular icon button (matches × close on the right) */
  .filters-actions .filters-reset{
    flex:0 0 auto;order:2;padding:0;width:46px;height:46px;line-height:1;
    min-width:0;
    display:inline-flex;align-items:center;justify-content:center;
    border-radius:50%;background:var(--bg);border:1px solid var(--line);color:var(--text);
    text-decoration:none;
  }
  .filters-actions .filters-reset:hover,
  .filters-actions .filters-reset:active{background:var(--accent);border-color:var(--accent);color:#fff}
  .filters-actions .filters-reset .filters-reset-icon{display:block}
  .filters-actions .filters-reset .filters-reset-label{display:none}
  .filters-actions .filters-close-x{
    position:static;order:3;flex:0 0 auto;
    display:inline-flex;align-items:center;justify-content:center;
    width:46px;height:46px;background:var(--bg);border:1px solid var(--line);border-radius:50%;
    color:var(--text);font:inherit;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;
  }
  .filters-actions .filters-close-x:hover,
  .filters-actions .filters-close-x:active{background:var(--accent);border-color:var(--accent);color:#fff}
  .filters-submit-d{display:none}
  .filters-submit-m{display:inline}

  /* Languages popup: bottom sheet sized to content; capped at 70vh (scrolls
     if it would otherwise exceed). */
  .ms.ms-cols-2.open .ms-dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;width:100vw;height:auto;max-height:70vh;max-width:none;min-width:0;background:var(--bg2);border:0;border-top:1px solid var(--line);border-radius:12px 12px 0 0;padding:12px;z-index:9999;overflow-y:auto;grid-template-columns:repeat(3, minmax(0,1fr));gap:6px;align-content:end;box-shadow:0 -10px 30px rgba(0,0,0,.5)}
  /* Save button: in-flow, full-width row at the bottom of the panel.
     JS injects this button first in the DOM, so push it past the labels with
     a high order value. */
  .ms.ms-cols-2.open .ms-dropdown .ms-dropdown-close{display:flex;position:static;order:99;grid-column:1 / -1;width:100%;height:46px;margin-top:8px;padding:0 22px;background:var(--accent);border:0;border-radius:50px;color:#fff;font:inherit;font-size:.86rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.45)}
  .ms.ms-cols-2.open .ms-dropdown .ms-dropdown-close:hover,
  .ms.ms-cols-2.open .ms-dropdown .ms-dropdown-close:active{background:#8a7350;color:#fff}
  .ms.ms-cols-2.open .ms-dropdown label{padding:8px 6px;margin:0;font-size:.78rem;font-weight:600;border-radius:6px;border:1px solid var(--line);background:var(--bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;text-align:center;min-height:36px;line-height:1.1}
  .ms.ms-cols-2.open .ms-dropdown label.is-selected{background:rgba(167,139,99,.22);border-color:var(--accent);color:#fff;font-weight:700}
  .ms.ms-cols-2.open .ms-dropdown label.is-selected:hover{background:var(--accent)}
}
@keyframes filters-fade-in{from{opacity:0}to{opacity:1}}

/* ==== Forms ==== */
form .row{margin-bottom:14px}
form label{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
form input,form select,form textarea{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:11px 14px;border-radius:6px;font:inherit}
form input[type=checkbox],form input[type=radio]{width:auto;padding:0}
form input:focus,form select:focus,form textarea:focus{outline:0;border-color:var(--accent)}
form textarea{min-height:120px;resize:vertical}
.terms-check{display:flex;align-items:center;gap:10px;color:var(--text);font-size:.85rem;text-transform:none;letter-spacing:0;margin:4px 0 16px;cursor:pointer}
.terms-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:0}
.terms-check a{color:var(--accent);text-decoration:underline}
.terms-check a:hover{color:#fff}

/* Compact 4-col grid (used on the profile page) */
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 12px;margin-bottom:14px}
.form-grid .row{margin-bottom:0}
.form-grid label{font-size:.66rem;margin-bottom:3px;letter-spacing:.08em}
.form-grid input,.form-grid select{padding:6px 10px;font-size:.82rem;border-radius:4px}
@media(max-width:880px){.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}}
.form-grid.profile-row-6{grid-template-columns:repeat(6,1fr)}
@media(max-width:880px){.form-grid.profile-row-6{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.form-grid.profile-row-6{grid-template-columns:repeat(2,1fr)}}
.form-grid.profile-row-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:880px){.form-grid.profile-row-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.form-grid.profile-row-5{grid-template-columns:1fr}}
.form-grid.profile-row-crypto{grid-template-columns:1fr 4fr}
@media(max-width:520px){.form-grid.profile-row-crypto{grid-template-columns:1fr}}
.profile-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.profile-head h1{margin:0;flex:1}
.profile-save-msg{font-size:.85rem;color:#22b66f}
.profile-save-msg.is-error{color:#ff6b6b}
.payments-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.payments-head h1{margin:0}
.payments-sub{display:flex;align-items:baseline;gap:10px}
.payments-sub-label{color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.payments-sub-date{font-size:1.6rem;font-weight:800;color:var(--text)}
.payments-sub.is-active .payments-sub-label,.payments-sub.is-active .payments-sub-date{color:#22b66f}
.payments-sub.is-inactive .payments-sub-label,.payments-sub.is-inactive .payments-sub-date{color:#ff6b6b}
.payments-actions .btn-primary{white-space:nowrap}
.profile-delete{display:flex;justify-content:flex-start;margin-top:60px}
.profile-delete a{color:var(--muted);font-size:.85rem;text-decoration:underline}
.profile-delete a:hover{color:#ff6b6b}
.profile-prices{margin-top:28px;border-top:1px solid var(--line);padding-top:16px}
.profile-prices h3{margin:0 0 10px;font-size:.95rem;letter-spacing:.05em}
.profile-prices ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-width:360px}
.profile-prices li{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--text)}
.profile-prices li span{color:var(--muted)}
.profile-delete-row{display:flex;justify-content:flex-start;margin-top:48px;margin-bottom:24px}
.profile-delete-btn{display:inline-block;min-width:240px;text-align:center;color:var(--muted);background:transparent;border:2px solid var(--muted);border-radius:50px;padding:10px 20px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;line-height:1}
.profile-delete-btn:hover{background:var(--muted);color:var(--bg)}
.payments-actions{display:flex;align-items:center;gap:12px;margin:14px 0 24px}
.payments-actions a:last-child{margin-left:auto}
.user-payments-list{display:flex;flex-direction:column;gap:8px;margin-top:24px}
.user-pay-card{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:12px 18px;display:grid;grid-template-columns:140px 1fr auto auto;align-items:center;gap:14px}
.user-pay-card-type{font-weight:600;font-size:1.05rem;color:var(--text)}
.user-pay-card-amount{font-size:1.1rem;font-weight:800;color:#fff;letter-spacing:.04em;text-align:right}
.user-pay-card-date{color:var(--muted);font-size:.88rem;font-family:'Courier New',Consolas,monospace}
@media(max-width:780px){
  .user-pay-card{grid-template-columns:auto 1fr;grid-template-areas:"type amount" "date status";row-gap:6px;column-gap:10px}
  .user-pay-card-type{grid-area:type}
  .user-pay-card-amount{grid-area:amount;justify-self:end}
  .user-pay-card-date{grid-area:date}
  .user-pay-card .pay-status{grid-area:status;justify-self:end}
}
.pay-status{display:inline-block;padding:2px 10px;border-radius:50px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.pay-status-pending{background:rgba(233,160,58,.15);color:#e9a03a}
.pay-status-confirmed{background:rgba(34,182,111,.15);color:#22b66f}
.pay-status-cancelled,.pay-status-canceled,.pay-status-rejected{background:rgba(255,107,107,.15);color:#ff6b6b}
.form-card{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:30px;max-width:480px;margin:60px auto}
.form-card h1{font-size:1.5rem;margin-bottom:20px}
.form-card .full{width:100%}
.form-card-dark input,.form-card-dark select,.form-card-dark textarea{background:#000;color:var(--text);border:1px solid var(--line)}
.form-card-dark input:focus,.form-card-dark select:focus,.form-card-dark textarea:focus{border-color:var(--accent);outline:none}

/* ==== Profile page ==== */
.profile{padding:40px 0;display:flex;flex-direction:column;gap:30px}
.profile .hero{display:grid;grid-template-columns:3fr 7fr;gap:40px;align-items:start;padding:0;background:none;position:static;overflow:visible;min-height:0}
@media(max-width:880px){.profile .hero{grid-template-columns:1fr}}
.profile .hero-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;cursor:pointer;background:#111}
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.gallery img,.gallery video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;cursor:pointer}
.gallery-videos{margin-top:16px}
.gallery .video-tile{position:relative;cursor:pointer}
.gallery .video-tile video{display:block;background:#000}
.gallery .video-tile .video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;pointer-events:none}
.gallery .video-tile .video-play svg{display:block;margin-left:3px}
@media(max-width:1100px){.gallery{grid-template-columns:repeat(4,1fr)}}
@media(max-width:640px){.gallery{grid-template-columns:repeat(2,1fr)}}
.profile .info h1{font-size:2rem;margin:0}
.profile .info-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.profile .info-head h1{margin:0}
.profile .info-head .user-name{order:1;flex:1 1 auto;min-width:0}
.profile .info-head .user-chat{order:2}
.profile .info-head .user-fav-form{order:3;display:inline}
.profile .info-head .user-back{order:4;margin-left:auto;border-color:#888;color:#bbb;display:inline-flex;align-items:center;gap:6px}
.profile .info-head .user-back:hover{background:#bbb;color:var(--bg);border-color:#bbb}
.profile .info-head .user-back svg{display:none}
.profile .info-head .user-name .user-age{color:var(--white);font-weight:inherit}
/* Heart icon next to the name — outlined by default, filled when in favorites.
   Lives inside <h1>, wrapped in a tiny POST form (toggles fav on submit). */
.profile .info-head .user-name .user-fav-form{display:inline-flex;align-items:center;margin-left:8px;vertical-align:middle}
.profile .info-head .user-name .fav-heart{background:transparent;border:0;padding:0;margin:0;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center}
.profile .info-head .user-name .fav-heart svg{display:block;width:22px;height:22px}
.profile .info-head .user-name .fav-heart svg path{fill:none;stroke:currentColor;stroke-width:2}
.profile .info-head .user-name .fav-heart:hover{color:var(--accent)}
.profile .info-head .user-name .fav-heart.is-fav{color:var(--accent)}
.profile .info-head .user-name .fav-heart.is-fav svg path{fill:currentColor;stroke:currentColor}
/* Match heights: btn-outline has 2px border, btn-primary has none — give Chat
   a transparent 2px border so Chat and Back render at the same pill height. */
.profile .info-head .user-chat,
.profile .info-head .user-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto}
.profile .info-head .user-chat{background:transparent;border:2px solid var(--accent);color:var(--accent)}
.profile .info-head .user-chat:hover{background:var(--accent);color:#fff}
.profile .info .params{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;list-style:none;padding:0;margin:20px 0;font-size:.9rem}
.profile .info .params li b{color:var(--white);font-weight:600;display:inline-block;min-width:90px}
.profile .info .params.params-row{display:flex;flex-wrap:wrap;gap:6px 28px;margin:20px 0 6px}
.profile .info .params.params-row li b{min-width:0;margin-right:6px}
/* Gender, Region, Languages — flow inline (one after another) on desktop;
   labels in regular weight, values in bold. On mobile (rule below) Languages
   wraps to its own line. */
.profile .info .params.params-meta{margin:20px 0 6px}
.profile .info .params.params-meta li{margin:0;font-weight:700;color:var(--white)}
.profile .info .params.params-meta li b{font-weight:400;color:var(--muted)}
.profile .info > p{color:#fff;overflow-wrap:anywhere;word-break:break-word;margin:6px 0 18px}
.profile .info .user-section-h{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin:14px 0 4px}
.profile .info .params li{overflow-wrap:anywhere;word-break:break-word;min-width:0}
.profile .info-head .user-name{overflow-wrap:anywhere;word-break:break-word}

/* ==== Profile (user view) — mobile ==== */
.mobile-carousel{display:none}
@media(max-width:780px){
  /* On mobile, hero-photo & gallery thumbnails are replaced by the carousel above */
  .profile .hero-photo{display:none}
  .profile > .gallery:not(.gallery-videos){display:none}
  .profile .hero{gap:0}
  /* Name is now a plain block (no overlay needed — carousel is above) */
  .profile .info-head .user-name{font-size:1.4rem;color:var(--text)}
  /* Hide the in-info-head Back button (carousel has its own top-left icon) */
  .profile .info-head .user-back{display:none}
  .profile .info-head{gap:8px;padding-top:0}
  .profile .info-head .user-chat{order:2;flex:1 1 0;padding:9px 10px}
  /* Each meta/lifestyle item on its own line */
  .profile .info .params.params-meta li{flex-basis:100%}
  /* Second list (lifestyle) appears as a continuation of the first — no gap */
  .profile .info .params.params-life{margin-top:6px}

  .mobile-carousel{
    display:block;position:relative;
    width:100vw;margin-left:calc(50% - 50vw);margin-top:-40px;margin-bottom:18px;
    height:100vw;background:#000;overflow:hidden;
  }
  .mc-track{
    display:flex;height:100%;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .mc-track::-webkit-scrollbar{display:none}
  .mc-slide{flex:0 0 100vw;width:100vw;height:100%;scroll-snap-align:start;scroll-snap-stop:always}
  .mc-slide img{width:100%;height:100%;object-fit:cover;display:block}
  .mc-placeholder{width:100%;height:100%;object-fit:contain;opacity:.35;display:block}
  .mc-back,.mc-prev,.mc-next{
    position:absolute;z-index:5;
    width:42px;height:42px;border-radius:50%;
    background:rgba(255,255,255,.25);border:0;color:#fff;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;padding:0;
    -webkit-tap-highlight-color:transparent;
  }
  .mc-back:active,.mc-prev:active,.mc-next:active{background:rgba(255,255,255,.45)}
  .mc-back{top:14px;left:14px}
  .mc-prev{bottom:14px;left:14px}
  .mc-next{bottom:14px;right:14px}
  .mc-fav{
    position:absolute;z-index:5;top:14px;right:14px;
    background:transparent;border:0;padding:6px;
    color:#fff;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
    -webkit-tap-highlight-color:transparent;
    filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));
  }
  .mc-fav svg{display:block;width:26px;height:26px}
  .mc-fav svg path{fill:none;stroke:currentColor;stroke-width:2}
  .mc-fav.is-fav{color:var(--accent)}
  .mc-fav.is-fav svg path{fill:currentColor;stroke:currentColor}
  .mc-counter{display:none}
}

/* ==== Static content pages (terms/privacy/payment/contact) ==== */
.content-page{max-width:780px;margin:40px auto;padding:0 20px;line-height:1.6}
.content-page h1{font-size:2rem;margin:0 0 10px}
.content-page h2{font-size:1.15rem;margin:24px 0 8px;color:var(--accent)}
.content-page p,.content-page li{color:#d4d4d4}
.content-page ul,.content-page ol{margin:8px 0 8px 20px}
.content-page li{margin:4px 0}

/* Contact form + slider captcha */
.contact-form{margin-top:18px;display:flex;flex-direction:column;gap:14px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:20px;position:relative}
.contact-form .row{display:flex;flex-direction:column;gap:5px}
.contact-form label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:10px 12px;font:inherit}
.contact-form input:focus,.contact-form textarea:focus{outline:0;border-color:var(--accent)}
.contact-form textarea{resize:vertical;min-height:120px}

.captcha-row{margin-top:4px}
.captcha-slider{position:relative;height:44px;background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:10px 14px}
.captcha-track{position:absolute;left:14px;right:14px;top:50%;height:4px;transform:translateY(-50%);background:var(--line);border-radius:2px}
.captcha-target{position:absolute;top:4px;bottom:4px;width:3px;background:var(--accent);border-radius:2px;box-shadow:0 0 6px var(--accent);transform:translateX(-1.5px)}
.captcha-range{position:relative;z-index:2;width:100%;margin:0;height:24px;-webkit-appearance:none;appearance:none;background:transparent}
.captcha-range::-webkit-slider-runnable-track{background:transparent;height:4px}
.captcha-range::-moz-range-track{background:transparent;height:4px}
.captcha-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--accent);border:2px solid #fff;cursor:grab;margin-top:-10px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.captcha-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--accent);border:2px solid #fff;cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.captcha-readout{position:absolute;right:14px;bottom:-22px;font-size:12px;color:var(--muted)}
.captcha-readout span{color:var(--text);font-weight:700}
.captcha-row{padding-bottom:22px}

/* Footer site-name link */
.copy a{color:inherit}
.copy a:hover{color:var(--accent)}

/* ==== Admin detail: tab pager + chats list ==== */
.tab-pager{margin-top:12px;display:flex;align-items:center;gap:8px;font-size:.85rem}
.tab-pager select{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:4px 8px;font:inherit;height:28px}
.user-chats{display:flex;flex-direction:column;gap:6px}
.user-chat-row{display:flex;gap:10px;align-items:center;padding:8px 10px;background:var(--bg2);border:1px solid var(--line);border-radius:6px;color:var(--text);text-decoration:none}
.user-chat-row:hover{background:var(--bg3);border-color:var(--accent)}
.user-chat-ava{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}
.user-chat-body{flex:1;min-width:0}
.user-chat-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.user-chat-snippet{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}

/* ==== Options toast ==== */
.options-toast{position:fixed;top:20px;right:20px;z-index:3000;padding:10px 16px;border-radius:6px;font-weight:700;font-size:.9rem;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.options-toast.success{background:#22b66f;color:#fff}
.options-toast.error{background:#c62828;color:#fff}

/* ==== Options panels ==== */
.options-head{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.options-head h1{margin:0}
.options-head .btn{margin-left:auto}

.opt-check{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 0;flex-wrap:wrap}
.opt-check input[type="checkbox"]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;margin:0;flex-shrink:0}
.opt-check-title{color:var(--text);font-weight:600}
.opt-check-hint{color:#bfcbd3;font-size:.85rem;font-weight:400}

/* ==== Fake generators list ==== */
.fake-list{margin-top:10px}
.fake-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.fake-row:last-child{border-bottom:0}
.fake-form{display:inline;margin:0}
.fake-count{width:80px;height:30px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:0 8px;font:inherit;flex:0 0 auto}
.fake-row-text{display:flex;align-items:baseline;gap:10px;flex:1;min-width:0;margin-left:4px}
.fake-row-title{font-weight:700;font-size:.9rem;color:var(--text);white-space:nowrap}
.fake-row-hint{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fake-row-have{margin-left:auto;color:var(--muted);font-size:.75rem;text-transform:uppercase;white-space:nowrap}
.fake-row-have strong{color:var(--accent);font-size:1rem;font-weight:800;margin-left:4px}
.fake-del-btn{color:#ff8e8e;border-color:#ff8e8e}
.profile .actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}

/* ==== Lightbox ==== */
.lb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.92);z-index:99999;display:flex;align-items:center;justify-content:center}
.lb-stage{width:95vw;max-width:95vw;height:90vh;max-height:90vh;position:relative;overflow:hidden;touch-action:pan-y}
.lb-track{display:flex;width:300%;height:100%;will-change:transform}
.lb-slide{flex:0 0 33.3333%;height:100%;display:flex;align-items:center;justify-content:center}
.lb-slide img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:4px;background:#111;pointer-events:none}
/* Custom video player: frame on top, control bar below */
.lb-video-wrap{position:relative;width:100%;height:100%;display:flex;flex-direction:column}
.lb-video-frame{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#000}
.lb-video-frame video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#111}
.lb-video-bar{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(0,0,0,.92);color:#fff;border-top:1px solid rgba(255,255,255,.06)}
.lb-video-btn{background:none;border:0;color:#fff;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex:0 0 auto}
.lb-video-btn:hover{background:rgba(255,255,255,.12)}
.lb-video-btn svg{display:block;width:28px;height:28px}
.lb-video-progress{flex:1;height:8px;background:rgba(255,255,255,.2);border-radius:4px;cursor:pointer;position:relative;min-width:60px}
.lb-video-progress-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:4px;width:0}
.lb-video-time{font-size:.85rem;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Video viewing: hide global prev/next/close (close lives in the bar) */
.lb-overlay.is-video .lb-prev,
.lb-overlay.is-video .lb-next,
.lb-overlay.is-video .lb-close{display:none}
.lb-btn{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:none;width:52px;height:52px;border-radius:50%;font-size:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:100000}
.lb-btn:hover{background:rgba(255,255,255,.25)}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}
.lb-close{top:20px;right:20px;width:44px;height:44px;font-size:1.3rem}
.lb-counter{display:none}
@media(max-width:640px){.lb-prev{left:8px}.lb-next{right:8px}.lb-btn{width:44px;height:44px}}
/* Mobile: photo pinned to top, controls fixed at bottom overlaying photo.
   Layout: [prev]  …  [close]  …  [next] — prev hugs left, next hugs right, close centered. */
@media(max-width:780px){
  .lb-overlay{align-items:flex-start}
  .lb-stage{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100dvh}
  .lb-slide{align-items:flex-start}
  /* Video slide: column flex fills viewport, frame above bar */
  .lb-slide.lb-video{align-items:stretch;flex-direction:column}
  .lb-prev,.lb-close,.lb-next{position:fixed;top:auto;bottom:20px;background:rgba(0,0,0,.55);width:64px;height:64px;font-size:2.4rem}
  .lb-close{font-size:1.8rem}
  .lb-prev:hover,.lb-close:hover,.lb-next:hover{background:rgba(0,0,0,.75)}
  .lb-prev{left:16px;right:auto;transform:none}
  .lb-next{right:16px;left:auto;transform:none}
  .lb-close{left:50%;right:auto;transform:translateX(-50%)}
}

/* ==== Flash messages ==== */
.flash{padding:14px 18px;border-radius:6px;margin:14px 0;border:1px solid var(--line);background:var(--bg2)}
.flash.success{border-color:#1f7a3a;color:#7ee2a3}
.flash.error{border-color:#7a1f1f;color:#ff8e8e}
.flash.info{color:var(--accent)}

/* ==== Footer ==== */
footer.site{background:#000;border-top:1px solid #000;padding:6px 0;margin-top:40px;color:#fff}
footer.site .footer-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
footer.site .footer-links{display:flex;gap:18px;flex-wrap:wrap}
footer.site .footer-links a{color:#fff;font-size:.82rem}
footer.site .footer-links a:hover{color:#bbb}
footer.site .copy{font-size:.75rem;color:#fff}
footer.site .copy a{color:#fff}

/* ==== Chat menu dot + icon button ==== */
.chat-menu{position:relative}
.chat-menu-dot{display:inline-block;width:8px;height:8px;background:#2ecc71;border-radius:50%;margin-left:6px;vertical-align:middle}
.chat-menu-dot[hidden]{display:none}
.chat-icon-btn{background:none;border:0;padding:6px;cursor:pointer;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;transition:.15s}
.chat-icon-btn:hover{transform:scale(1.1);color:#8a7350}

/* ==== Chat side panel (telegram-style) ==== */
.chat-panel{position:fixed;bottom:0;right:0;height:70vh;width:50vw;min-width:200px;max-width:100vw;background:var(--bg2);border-left:1px solid var(--line);border-top:1px solid var(--line);box-shadow:-8px 0 32px rgba(0,0,0,.4);display:flex;z-index:2000;font-size:14px;user-select:none}
.chat-panel[hidden]{display:none}
body.chat-resizing,body.chat-resizing *{user-select:none!important;cursor:ew-resize!important}
.chat-resizer{position:absolute;top:0;left:0;bottom:0;width:6px;cursor:ew-resize;background:transparent;z-index:10}
.chat-resizer:hover{background:var(--accent);opacity:.4}
.chat-col{display:flex;flex-direction:column;min-width:0}
.chat-col-list{width:300px;max-width:40%;border-right:1px solid var(--line);flex-shrink:0;background:var(--bg)}
.chat-col-conv{flex:1;min-width:0;min-height:0}
.chat-col-head{height:48px;min-height:0;padding:0 14px;border-bottom:1px solid var(--line);font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg3);box-sizing:border-box}
.chat-col-list .chat-col-head{background:var(--bg)}
.chat-conv-close,.chat-conv-min{background:transparent;border:1px solid #fff;border-radius:50%;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;padding:0;line-height:1}
.chat-conv-close{font-size:20px}
.chat-conv-close:hover,.chat-conv-min:hover{color:var(--accent);border-color:var(--accent)}
.chat-conv-min svg{display:block}
.chat-conv-back{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:0 4px;align-items:center;justify-content:center;flex:0 0 auto}
.chat-conv-back:hover{color:var(--accent)}
.chat-conv-back svg{display:block}
.chat-list{flex:1;overflow-y:auto}
.chat-empty{padding:20px;color:var(--muted);text-align:center}
.chat-item{display:flex;gap:10px;padding:0 12px;height:48px;cursor:pointer;border-bottom:1px solid var(--line);position:relative;align-items:center;box-sizing:border-box}
.chat-item:hover{background:var(--bg3)}
.chat-item.active{background:var(--bg3);box-shadow:inset 4px 0 0 var(--accent)}
.chat-item.unread .chat-item-name{font-weight:700}
.chat-item-ava{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}
.chat-item-name{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-item-dot{width:10px;height:10px;background:#2ecc71;border-radius:50%;flex-shrink:0}
.chat-item-hide{flex:0 0 auto;width:24px;height:24px;border:0;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,color .12s,background .12s}
.chat-item:hover .chat-item-hide{opacity:1}
.chat-item-hide:hover{background:var(--bg2);color:#e74c3c}
.chat-conv-head{gap:10px}
.chat-conv-title{flex:1 1 0;display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.chat-conv-link{flex:1 1 0;display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden;color:inherit;text-decoration:none}
.chat-conv-link:hover span{text-decoration:underline}
.chat-conv-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 0}
.chat-conv-ava{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.chat-messages{flex:1 1 0;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;user-select:text}
.chat-messages > :first-child{margin-top:auto}
.chat-msg{max-width:70%;padding:3px 11px;border-radius:14px;word-wrap:break-word;display:flex;flex-direction:row;align-items:baseline;gap:8px}
.chat-msg.in{background:var(--bg3);color:var(--text);align-self:flex-start;border-bottom-left-radius:4px}
.chat-msg.out{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.chat-msg-body{white-space:pre-wrap;flex:1 1 auto;min-width:0}
.chat-msg-time{font-size:10px;opacity:.7;flex:0 0 auto;white-space:nowrap}
.chat-send{display:flex;align-items:stretch;border-top:1px solid var(--line);position:relative;background:#000}
.chat-send textarea{flex:1;background:transparent;border:0;color:var(--text);padding:12px 50px 12px 14px;font:inherit;line-height:1.4;resize:none;max-height:40vh;overflow-y:auto;min-height:44px}
.chat-send textarea:focus{outline:0}
.chat-send .chat-emoji-btn{position:absolute;right:46px;bottom:0;height:44px;display:flex;align-items:center;justify-content:center;padding:0 8px}
.chat-send button[type="submit"]{background:#000;color:var(--accent);border:1px solid var(--accent);border-radius:50%;width:32px;height:32px;padding:0;cursor:pointer;align-self:center;margin:0 10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.chat-send button[type="submit"] svg{display:block;width:16px;height:16px}
.chat-send button[type="submit"]:hover{background:var(--accent);color:#fff}
.chat-emoji-btn{background:none;border:0;padding:0 10px;cursor:pointer;color:var(--muted);display:flex;align-items:center}
.chat-emoji-btn:hover{color:var(--accent)}
.chat-emoji-pop{position:absolute;right:70px;bottom:calc(100% + 6px);background:var(--bg2);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);padding:6px;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;width:290px;max-height:55vh;overflow-y:auto;z-index:10}
.chat-emoji-pop[hidden]{display:none}
.chat-emoji-i{background:none;border:0;cursor:pointer;font-size:18px;line-height:1;padding:3px;border-radius:4px}
.chat-emoji-i:hover{background:var(--bg3)}
.chat-fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.5);z-index:1500;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.chat-fab:hover{background:#8a7350;transform:translateY(-2px)}
.chat-fab svg{display:block}
.chat-fab-dot{position:absolute;top:6px;right:6px;width:12px;height:12px;border-radius:50%;background:#2ecc71;border:2px solid var(--bg);box-sizing:content-box}
.chat-fab-dot[hidden]{display:none}
body:has(.chat-panel:not([hidden])) .chat-fab{display:none}
@media(max-width:780px){
  .chat-fab{display:none}
  /* User chat dock — sit exactly below the fixed top bars (measured at runtime). */
  .chat-panel{
    top:var(--top-bars-h,71px);bottom:0;height:auto!important;
    left:0!important;right:0!important;width:100vw!important;
    max-width:100vw!important;
    border-left:0;border-top:1px solid var(--line);
    box-shadow:none;
    font-size:15px;
  }
  /* iOS Safari auto-zooms on focus if font-size < 16px. Force 16px on
     all focusable text inputs to keep the layout viewport stable.
     !important is required because many existing rules (.filters input,
     .chat-send textarea, etc.) have higher specificity than a bare
     element selector. */
  input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=file]):not([type=range]):not([type=color]),
  select,
  textarea{font-size:16px!important}
  body:has(.admin-bar) .chat-panel{top:var(--top-bars-h,113px)}
  body:has(.chat-panel:not([hidden])) .filters-fab{display:none}

  /* Telegram-style two screens: list OR conversation, never both. */
  .chat-col-list{width:100%!important;max-width:100%!important;flex:1 1 100%;border-right:0}
  .chat-col-conv{display:none}
  .chat-panel.chat-conv-open .chat-col-list{display:none}
  .chat-panel.chat-conv-open .chat-col-conv{display:flex;flex:1 1 100%}

  /* Full-row list items with avatar + name */
  .chat-list .chat-item{display:flex;align-items:center;justify-content:flex-start;width:100%;height:58px;padding:0 14px;gap:12px;position:relative;box-sizing:border-box;font-size:16px}
  .chat-list .chat-item-name{display:block;font-size:16px}
  .chat-list .chat-item-dot{position:static;margin-left:auto}
  .chat-list .chat-item-hide{opacity:1;width:34px;height:34px;font-size:24px;margin-left:4px}
  .chat-item-ava{width:44px;height:44px}

  /* Conversation messages, header, input — bump for legibility */
  .chat-col-head{height:54px;font-size:1rem}
  .chat-conv-ava{width:32px;height:32px}
  .chat-messages{padding:14px 14px 70px 14px;gap:10px}
  .chat-send{position:fixed;left:0;right:0;bottom:0;z-index:2001}
  .chat-msg{font-size:1.15rem;padding:4px 14px;border-radius:16px}
  .chat-msg-time{font-size:11px}
  .chat-send textarea{font-size:16px;padding:14px 64px 14px 16px;min-height:50px}
  .chat-send button[type="submit"]{width:44px;height:44px;margin:0 8px}
  .chat-send button[type="submit"] svg{width:22px;height:22px}
  .chat-send .chat-emoji-btn{right:60px;height:50px;padding:0 6px}
  .chat-send .chat-emoji-btn svg{width:28px;height:28px}
  .chat-emoji-i{font-size:22px;padding:5px}

  /* Emoji popup — full chat-panel width on mobile, adapts to resize */
  .chat-emoji-pop{left:0;right:0;transform:none;width:auto;max-width:none;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));max-height:50vh}

  /* Show Back arrow on the conv header (mobile only) */
  .chat-conv-back{display:inline-flex}
  .chat-resizer{display:none}
}

/* ==== Admin Chat page ==== */
.admin-chat{display:flex;flex-direction:column;gap:14px;padding:0 14px 14px 14px;height:calc(100vh - 80px)}
.admin-chat-filters{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;padding:8px 14px;background:var(--bg2);border:1px solid var(--line);border-radius:6px;margin:0;position:relative;z-index:5}
.admin-chat-filters select,.admin-chat-filters .admin-chat-q{height:28px;padding:0 10px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;font:inherit;font-size:.8rem;box-sizing:border-box}
.admin-chat-filters .admin-chat-partner-select{width:20%;flex:0 0 20%;min-width:0}
.admin-chat-filters .admin-chat-q{flex:1;min-width:0}
.admin-chat-count{margin-left:auto;white-space:nowrap;font-size:13px;color:#fff;font-weight:700}
.admin-chat-filters .admin-chat-meta{flex:0 0 23%;width:23%;display:flex;align-items:center;gap:6px;padding:2px 0;background:var(--bg3);border-radius:6px;height:28px;box-sizing:border-box;justify-content:space-between}
.admin-chat-filters .admin-chat-meta .filter-count{font-weight:400;color:#fff;font-size:.85rem;letter-spacing:.12em;width:70px;min-width:70px;height:28px;line-height:26px;text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-sizing:border-box;padding:0 6px}
.admin-chat-filters .admin-chat-meta select{height:28px;padding:0 18px 0 6px;font-size:.78rem;box-sizing:border-box}
.admin-chat-filters .admin-chat-meta #admin-chat-sort{flex:1 1 auto;min-width:0}
.admin-chat-filters .admin-chat-btn{flex:0 0 auto;height:auto;line-height:1;padding:3px 10px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:50px;justify-content:center;text-align:center;box-sizing:border-box;display:inline-flex;align-items:center}
.admin-chat-filters .admin-chat-filter-btn{height:28px;padding:0 16px;font-size:.8rem;font-weight:600;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;cursor:pointer;box-sizing:border-box;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}
.admin-chat-filters .admin-chat-filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.admin-chat-filters .admin-chat-reset{width:23px;height:23px;min-height:0;max-height:23px;padding:0;margin:0;border:1px solid #fff;color:var(--text);background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 auto;text-decoration:none;line-height:0;font-size:0}
.admin-chat-filters .admin-chat-reset:hover{border-color:var(--accent);color:var(--accent)}
.admin-chat-filters .admin-chat-reset svg{display:block;width:13px;height:13px}
.admin-chat-delete{width:23px;height:23px;min-height:0;max-height:23px;padding:0;margin:0;border:1px solid #ff8e8e;color:#ff8e8e;background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;line-height:0;font-size:0}
.admin-chat-delete:hover{background:#ff8e8e;color:var(--bg)}
.admin-chat-delete svg{display:block}
.admin-chat-filters .admin-filters-actions{display:none}

/* User search with autocomplete */
.admin-chat-userbox{position:relative;width:20%;flex:0 0 20%;min-width:0}
.admin-chat-user-input{width:100%;height:28px;padding:0 28px 0 10px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;font:inherit;font-size:.8rem;box-sizing:border-box}
.admin-chat-user-input:focus{outline:0;border-color:var(--accent)}
.admin-chat-user-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px}
.admin-chat-user-clear:hover{color:var(--accent)}
.admin-chat-user-sugg{position:absolute;left:0;right:0;top:calc(100% + 2px);background:var(--bg2);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.35);max-height:240px;overflow-y:auto;z-index:20}
.admin-chat-user-row{padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.admin-chat-user-row:last-child{border-bottom:0}
.admin-chat-user-row:hover{background:var(--bg3)}
.admin-chat-user-ava{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}
.admin-chat-user-text{flex:1;min-width:0}
.admin-chat-user-name{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-chat-user-hint{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-chat-user-empty{padding:8px 10px;color:var(--muted);font-size:12px}
.admin-chat-body{flex:1;display:grid;grid-template-columns:25% 1fr;gap:10px;min-height:0}
.admin-chat-list{overflow-y:auto;background:transparent;border:0;border-radius:0}
.admin-chat-item{display:flex;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center;color:var(--text);text-decoration:none;margin-bottom:5px;background:var(--bg2)}
.admin-chat-item:hover{background:var(--bg3)}
.admin-chat-item.active{background:var(--bg3);border-left:3px solid var(--accent)}
.admin-chat-item-ava{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}
.admin-chat-item-ava-2{margin-left:-10px;border:2px solid var(--bg2)}
.admin-chat-item-body{flex:1;min-width:0}
.admin-chat-item-names{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-chat-item-meta{font-size:11px;margin-top:2px}
.admin-chat-view{display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--line);border-radius:6px;min-height:0}
.admin-chat-view-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg3);gap:10px}
.admin-chat-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.admin-chat-msg{max-width:70%;padding:8px 12px;border-radius:10px;background:var(--bg3);border:1px solid var(--line)}
.admin-chat-msg.left{align-self:flex-start;border-bottom-left-radius:3px;background:rgba(58,169,224,.18);border-color:rgba(58,169,224,.45)}
.admin-chat-msg.right{align-self:flex-end;border-bottom-right-radius:3px;background:rgba(167,139,99,.18);border-color:rgba(167,139,99,.45)}
.admin-chat-msg[data-hit="1"]{outline:2px solid var(--accent);box-shadow:0 0 0 3px rgba(230,20,125,.15)}
.admin-chat-msg-who{font-size:11px;margin-bottom:4px}
.admin-chat-msg-body{white-space:pre-wrap;word-wrap:break-word}
.btn-danger{background:#c62828;color:#fff;border:0}
.btn-danger:hover{background:#a61d1d}
.label-sub{font-size:.8rem;color:var(--muted);font-weight:400}
@media(max-width:520px){.label-sub{display:block}}
.row.row-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row.row-2col > .row{margin:0}
@media(max-width:520px){.row.row-2col{grid-template-columns:1fr}}
.renew-month-btn{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2;gap:2px;text-align:center}
.renew-month-btn .renew-month-title{font-weight:700}
.renew-month-btn .renew-month-meta{font-size:.85rem;opacity:.9;font-weight:400}

/* ==== Upload tiles + dropzone ==== */
.uploads{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
@media(max-width:680px){.uploads{grid-template-columns:repeat(2,1fr)}}
.uploads .tile{position:relative;aspect-ratio:1;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:grab;transition:.15s;user-select:none;touch-action:pan-y;-webkit-user-drag:none}
.uploads .tile:active{cursor:grabbing}
.uploads .tile.dragging{opacity:.35;border-color:var(--accent)}
.uploads .tile.drag-ghost{cursor:grabbing;opacity:.92;border-color:var(--accent);box-shadow:0 12px 30px rgba(0,0,0,.55),0 0 0 2px var(--accent);transform:scale(1.04);transition:none}
body.drag-active{cursor:grabbing}
body.drag-active *{user-select:none!important}
.uploads .tile.drop-before{box-shadow:-3px 0 0 var(--accent)}
.uploads .tile.drop-after{box-shadow:3px 0 0 var(--accent)}
.uploads .tile img,.uploads .tile video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1;padding-left:4px;transition:.2s}
.media-cell:hover .play-overlay,.uploads .tile.tile-video:hover .play-overlay{background:var(--accent)}
.media-cell{cursor:pointer}
.uploads .tile .order{position:absolute;top:6px;left:6px;background:rgba(0,0,0,.75);color:#fff;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:50px;pointer-events:none}
.uploads .tile .del{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.75);color:#fff;border:0;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:14px;line-height:24px;padding:0;text-align:center;opacity:1;transition:background .15s;z-index:2}
.uploads .tile .del:hover{background:var(--accent)}
.uploads .tile.uploading{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);border:2px dashed var(--accent);padding:10px;text-align:center;font-size:.7rem;color:var(--muted);gap:6px}
.uploads .tile.uploading .spinner{width:36px;height:36px;border:3px solid var(--bg3);border-top-color:var(--accent);border-radius:50%;animation:upload-spin .8s linear infinite}
.uploads .tile.uploading .name{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uploads .tile.uploading .bar{width:90%;height:6px;background:var(--bg3);border-radius:50px;overflow:hidden}
.uploads .tile.uploading .bar > i{display:block;height:100%;background:var(--accent);width:0;transition:width .15s linear}
.uploads .tile.uploading .pct{color:var(--accent);font-weight:700;font-size:.78rem}
@keyframes upload-spin{to{transform:rotate(360deg)}}
.uploads .tile.error{border-color:#7a1f1f;color:#ff8e8e;background:#1a0a0a}

.uploads-wrap{position:relative;margin-top:10px;border:2px dashed transparent;border-radius:10px;transition:border-color .15s, background .15s;padding:6px}
.uploads-wrap.over{border-color:var(--accent);background:rgba(3,24,42,.45)}
.uploads-wrap .drop-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;pointer-events:none;background:rgba(0,0,0,.55);border-radius:10px;backdrop-filter:blur(2px);z-index:5}
.uploads-wrap.dragging-files .drop-overlay{display:flex}
.drop-overlay-inner{text-align:center;color:var(--accent);padding:24px 36px;border:2px dashed var(--accent);border-radius:10px;background:rgba(3,24,42,.85)}
.drop-overlay-inner .icon{font-size:2.5rem;line-height:1;margin-bottom:6px}
.drop-overlay-inner strong{display:block;font-size:1rem;color:var(--text)}

.uploads .add-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--bg2);border:2px dashed var(--line);color:var(--muted);text-align:center;cursor:pointer;transition:.15s;padding:8px;font-size:.7rem;line-height:1.3}
.uploads .add-tile:hover{border-color:var(--accent);color:var(--accent);background:#03182a}
.uploads .add-tile .add-plus{font-size:2.5rem;line-height:1;font-weight:300;color:var(--accent)}
.uploads .add-tile input[type=file]{display:none}
.uploads-wrap.full .add-tile{display:none}

/* Uploads page header: title + Add button on one row */
.uploads-page .uploads-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.uploads-page .uploads-head h1{margin:0}
/* Desktop: a drop-zone-styled drop hint at top right (the actual drop target is the whole .uploads-wrap). */
.uploads-page .uploads-add-btn{position:relative;display:inline-flex;align-items:center;gap:10px;background:var(--bg2);border:2px dashed var(--accent);border-radius:8px;color:var(--muted);cursor:pointer;padding:6px 14px;transition:border-color .15s,color .15s,background .15s;flex:0 0 auto}
.uploads-page .uploads-add-btn:hover,.uploads-page .uploads-add-btn.drag-over{border-color:var(--accent);color:var(--accent);background:rgba(230,20,125,.12)}
.uploads-page .uploads-add-btn .add-plus{font-size:1.8rem;line-height:1;font-weight:300;color:var(--accent)}
.uploads-page .uploads-add-btn .uploads-add-text{display:flex;flex-direction:column;line-height:1.3;text-align:left;gap:2px}
.uploads-page .uploads-add-btn .uploads-add-text strong{font-size:.95rem;color:var(--text);font-weight:600}
.uploads-page .uploads-add-btn .uploads-add-text small{font-size:.7rem;opacity:.85}
/* iOS Safari: file input must stay in the layout for the wrapping <label> click to open the picker. */
.uploads-page .uploads-add-btn input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0;margin:0;z-index:1;font-size:0}
@media(max-width:780px){
  /* Mobile: just a round `+` button, no text or hint. */
  .uploads-page .uploads-head{flex-direction:column;align-items:stretch;gap:8px}
  .uploads-page .uploads-add-btn{width:100%;justify-content:center;padding:6px 10px;gap:8px}
  .uploads-page .uploads-add-btn .add-plus{font-size:1.5rem}
  .uploads-page .uploads-add-btn .uploads-add-text{text-align:center;align-items:center}
  .uploads-page .uploads-add-btn .uploads-add-text strong{font-size:.85rem}
  .uploads-page .uploads-add-btn .uploads-add-text small{font-size:.65rem}
  .uploads-page .uploads-hint{display:none}
  .uploads-page .uploads-wrap{border:0;padding:0}
  .uploads-page .uploads-wrap .drop-overlay{display:none!important}
}

/* ==== Pay block ==== */
.pay-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1500;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:60px 20px}
.pay{position:relative;width:100%;max-width:560px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:30px;text-align:center;margin:0}
.pay-close{position:absolute;top:10px;right:14px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:24px;line-height:1;text-decoration:none;border-radius:50%}
.pay-close:hover{color:var(--text);background:var(--bg3)}
.pay .wallet{position:relative;background:var(--bg);padding:14px 50px 14px 14px;border-radius:6px;font-family:'Courier New',monospace;font-size:1rem;color:var(--accent);word-break:break-all;margin:14px 0;border:1px dashed var(--line);cursor:pointer;display:flex;align-items:center;gap:10px;transition:.15s}
.pay .wallet:hover{border-color:var(--accent)}
.pay .wallet .wallet-text{flex:1;text-align:left}
.pay .wallet-copy{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--muted);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px}
.pay .wallet-copy:hover{color:var(--accent);background:rgba(167,139,99,.12)}

/* ==== Admin ==== */
.admin-layout{display:grid;grid-template-columns:minmax(0,25%) minmax(0,75%);grid-template-rows:auto 1fr;row-gap:10px;column-gap:10px;height:calc(100vh - 70px);width:100%;padding:0 14px 14px 14px;box-sizing:border-box}
.admin-layout.admin-layout-no-filter{grid-template-rows:1fr}
.admin-filters{grid-column:1/-1;border:1px solid var(--line);border-radius:6px;padding:8px 14px;background:var(--bg2);margin:0}
.admin-filters form{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;width:100%}
.admin-filters form#admin-filter-form{flex-direction:column;align-items:stretch;gap:6px}
.admin-filters .filter-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;width:100%}
.admin-filters select{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 8px;border-radius:6px;font:inherit;font-size:.78rem;height:28px}
/* Ensure every filter field has a 6px radius unless an icon-button rule explicitly overrides */
.admin-filters input,
.admin-filters select,
.admin-filters .btn,
.admin-chat-filters input,
.admin-chat-filters select,
.admin-payments-page .admin-filters input[type=date],
.admin-payments-page .admin-filters select{border-radius:6px}
.admin-filters .filter-meta{display:flex;align-items:center;gap:6px;padding:2px 8px;background:var(--bg3);border-radius:6px;flex:0 0 auto}
#admin-root .admin-filters .filter-meta,
#support-root .admin-filters .filter-meta,
body.page-admin_emails .admin-filters .filter-meta{flex:0 0 23%;width:23%;box-sizing:border-box;justify-content:space-between;gap:0;padding:2px 0}
body.page-admin_emails .admin-list,
body.page-admin_email_templates .admin-list{background:transparent;border:0}

/* Options — input/select bg = page bg (var(--bg) = #020F17) */
body.page-admin_options input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=file]),
body.page-admin_options textarea,
body.page-admin_options select{background:var(--bg)}

/* Support / Emails / Templates / Options list — show like Users (no full border, just bottom + left stripe on active) */
body.page-admin_emails .admin-list .ticket-row,
body.page-admin_email_templates .admin-list .ticket-row,
body.page-admin_options .admin-list .ticket-row,
.support-admin-list .ticket-row{
  border-radius:0;border:none;border-bottom:1px solid var(--line);margin:0 0 5px 0;
}
body.page-admin_emails .admin-list .ticket-row:hover,
body.page-admin_email_templates .admin-list .ticket-row:hover,
body.page-admin_options .admin-list .ticket-row:hover,
.support-admin-list .ticket-row:hover{
  border-color:transparent;border-bottom-color:var(--line);filter:brightness(1.2);
}
body.page-admin_emails .admin-list .ticket-row.active,
body.page-admin_email_templates .admin-list .ticket-row.active,
body.page-admin_options .admin-list .ticket-row.active,
.support-admin-list .ticket-row.active{
  border-color:transparent;border-bottom-color:var(--line);box-shadow:inset 4px 0 0 var(--accent);
}
.admin-filters .filter-count{font-weight:400;color:#fff;font-size:.85rem;letter-spacing:.12em;width:70px;min-width:70px;height:28px;line-height:26px;text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-sizing:border-box;padding:0 6px}
.admin-filters .filter-reset{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;color:var(--text);text-decoration:none;font-size:1rem;line-height:1;flex-shrink:0}
.admin-filters .filter-reset:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.admin-filters .filter-meta select[name=page],
.admin-chat-filters .admin-chat-meta select[name=page]{min-width:60px;width:60px;box-sizing:border-box;padding:0 22px 0 10px}
.admin-filters .filter-meta select[name=sort],
.admin-chat-filters .admin-chat-meta select[name=sort]{width:100px;min-width:100px;box-sizing:border-box;padding-right:22px}
.admin-filters .filter-search{flex:1 1 auto;min-width:200px;width:auto;height:28px;padding:0 10px;line-height:26px;font-size:.8rem;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;box-sizing:border-box}
.admin-filters .filter-search-wrap{position:relative;flex:1 1 auto;min-width:200px;display:inline-flex;align-items:center}
.admin-filters .filter-search-wrap .filter-search{flex:1 1 auto;min-width:0;width:100%;padding-right:26px}
.admin-filters .filter-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center}
.admin-filters .filter-search-clear:hover{color:var(--text)}
.admin-filters .filter-search-wrap .filter-search:placeholder-shown ~ .filter-search-clear{display:none}
#admin-root .admin-filters .filter-search{flex:0 0 23%;width:23%}
#admin-root .admin-filters .filter-row:first-of-type{align-items:center;min-height:34px}
#admin-root .admin-filters .filter-row:first-of-type > *{align-self:center}
#admin-root .admin-filters .filter-row:first-of-type > .filter-search + *{margin-left:auto}
#admin-root .admin-filters .admin-status-pills .btn-pill-sm{height:28px;padding:0 10px;display:inline-flex;align-items:center;box-sizing:border-box;border-radius:6px}
#admin-root .admin-filters .rating-grid .rating-pill{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:6px}
#support-root .admin-filters .btn-pill-sm{height:28px;padding:0 12px;display:inline-flex;align-items:center;box-sizing:border-box;border-radius:6px}
#admin-root .admin-filters .filters-reset,
#support-root .admin-filters .filters-reset,
#emails-root .admin-filters .filters-reset,
.admin-payments-page .admin-filters .filters-reset{margin-left:auto;width:23px;height:23px;min-height:0;max-height:23px;padding:0;margin-top:0;margin-bottom:0;margin-right:0;border:1px solid #fff;color:var(--text);background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 auto;text-decoration:none;line-height:0;font-size:0}
#admin-root .admin-filters .filters-reset:hover,
#support-root .admin-filters .filters-reset:hover,
#emails-root .admin-filters .filters-reset:hover,
.admin-payments-page .admin-filters .filters-reset:hover{border-color:var(--accent);color:var(--accent)}
#admin-root .admin-filters .filters-reset svg,
#support-root .admin-filters .filters-reset svg,
#emails-root .admin-filters .filters-reset svg,
.admin-payments-page .admin-filters .filters-reset svg{display:block;width:13px;height:13px}

/* Payments — page-level paddings + filter + list panel */
.admin-payments-page{padding:0 14px 14px 14px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px}
.admin-payments-page > .admin-filters{padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--bg2);margin:0;position:sticky;top:111px;z-index:40}
.admin-payments-page .admin-payments-list{padding:0;background:transparent;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:6px}

/* Payment cards — fixed-width columns aligned across all rows
   Order: Amount | Type | Status | Name | Dates | Actions */
.payment-card{
  display:grid;
  grid-template-columns:90px 100px 110px 220px 1fr auto;
  align-items:center;gap:14px;
  padding:12px 14px;background:var(--bg2);border:1px solid var(--line);border-radius:6px;
}
.payment-card-amount{color:#fff;font-weight:800;letter-spacing:.04em;font-size:1rem;white-space:nowrap}
.payment-card-type{color:var(--text);font-size:.85rem;font-weight:600;white-space:nowrap}
.payment-card .pay-status{justify-self:start;white-space:nowrap}
.payment-card-user{color:var(--white);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.payment-card-user:hover{color:var(--accent)}
.payment-card-dates{color:var(--muted);font-family:'Courier New',Consolas,monospace;font-size:.82rem;white-space:nowrap}
.payment-card-actions{display:flex;align-items:center;gap:8px}
/* Payments — compact filter row: buttons same height as pagination, no label margin */
.admin-payments-page .admin-filters form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.admin-payments-page .admin-filters .btn-sm{height:28px;padding:0 10px;font-size:.72rem;font-weight:600;letter-spacing:normal;text-transform:none;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1}
.admin-payments-page .admin-filters label{margin:0}
.admin-payments-page .admin-filters .payments-sum{font-weight:800;font-size:1.05rem;color:#fff;letter-spacing:.12em;margin-left:auto}
/* Send / outline-white button — used for notification triggers */
.btn-send{border:1px solid #fff;color:#fff;background:transparent}
.btn-send:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.admin-filters .filter-select{flex:0 0 auto;width:100px;max-width:100px;padding:0 8px;line-height:26px;font-size:.78rem;height:28px;box-sizing:border-box}
.admin-filters .btn-pills,
.admin-filters .btn-pills-tight{gap:3px;margin:0;flex:0 0 auto;flex-wrap:nowrap}
.admin-filters .btn-pills label,
.admin-filters .btn-pills-tight label{margin:0}
.admin-filters .btn-pill-sm{padding:3px 8px;font-size:.72rem;flex:0 0 auto;justify-content:center}
.admin-filters .rating-grid{display:flex;gap:3px;flex:0 0 auto;flex-wrap:nowrap}
.admin-filters .rating-grid .rating-pill{width:24px;height:24px;font-size:.72rem;padding:0;flex:0 0 auto}
.admin-filters .filter-views{flex:0 0 140px;min-width:120px;height:28px;padding:0 6px;margin:0;width:auto}
.admin-filters .filter-views .rs-label{font-size:.66rem}
.admin-filters .cs{flex:0 0 auto}
.admin-filters .cs-trigger{font-size:.78rem;height:28px;padding:0 12px;border-radius:6px}
.admin-filters .age-picker{flex:0 0 auto;height:28px}
.admin-filters .age-trigger{height:28px;font-size:.78rem;padding:0 12px;border-radius:6px}
.admin-filters .filter-city{flex:0 0 120px;width:120px;height:28px;padding:4px 10px;font-size:.8rem;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;box-sizing:border-box}
.admin-filters .adm-grp-tca{display:contents}
.admin-filters .adm-grp-cc{display:contents}
.admin-filters .adm-f-lang{flex:0 0 auto;width:180px;min-width:180px;max-width:180px}
.admin-filters .adm-f-lang .ms-toggle{width:100%;height:28px;font-size:.78rem;padding:0 12px;border-radius:6px}
.admin-filters .admin-filters-actions{display:none}
.admin-filters .filter-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg3);border:1px solid var(--line);border-radius:50px;padding:3px 10px;font-size:.78rem;flex:0 0 auto}
.admin-filters .filter-chip a{color:var(--muted);text-decoration:none;font-size:1rem;line-height:1}
.admin-filters .filter-chip a:hover{color:var(--accent)}

/* Unified Action buttons (Admin detail + Admin tools side-panel) */
.act{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 12px;border-radius:50px;font-size:.74rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;min-height:28px;white-space:nowrap;transition:.15s}
.act:hover{filter:brightness(1.2)}
.act-login{border-color:#3aa9e0;color:#3aa9e0}
.act-tickets{border-color:#10b9a4;color:#10b9a4}
.act-chats{border-color:#6c5ce7;color:#6c5ce7}
.act-profile{border-color:var(--accent2);color:var(--accent2)}
.paid-until{text-transform:uppercase}
.paid-until.is-paid{color:#22b66f}
.paid-until.is-unpaid{color:#ff8e8e}
.pay-add-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.pay-add{display:inline-flex;gap:8px;align-items:center;flex-wrap:nowrap}
.pay-add input[type=date]{background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:6px;font:inherit;font-size:.82rem;color-scheme:dark;height:36px;box-sizing:border-box}
.pay-add input[type=date]::-webkit-clear-button{display:none;-webkit-appearance:none}
.pay-amount{width:80px;background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:6px;font:inherit;font-size:.82rem;height:36px;box-sizing:border-box;-moz-appearance:textfield;appearance:textfield}
.pay-amount::-webkit-outer-spin-button,.pay-amount::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pay-months{width:80px;background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:6px;font:inherit;font-size:.82rem;height:36px;box-sizing:border-box}
.pay-del{background:transparent;border:1px solid var(--line);color:#ff8e8e;width:22px;height:22px;border-radius:50%;font-size:.9rem;line-height:1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.pay-del:hover{border-color:#ff8e8e;background:rgba(255,142,142,.12)}
.admin-detail .card{overflow:visible}
.user-tickets{display:flex;flex-direction:column;gap:8px}

/* Emails */
.email-preview{width:100%;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:14px;overflow:auto}
.email-preview a{color:var(--accent)}
.email-preview img{max-width:100%;height:auto}
.email-detail-title{margin:0 0 4px}
.email-detail-meta{margin:0 0 14px;font-size:.85rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.email-detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.shortcode-list{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:14px}
.shortcode-list .eyebrow{margin:0 0 6px}
.shortcode{display:inline-flex;background:var(--bg3);border:1px solid var(--line);color:var(--text);padding:3px 8px;border-radius:4px;font-family:monospace;font-size:.78rem;cursor:pointer;margin:2px}
.shortcode:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.tpl-form .row{margin-bottom:12px}
.tpl-editor-wrap{position:relative}
.tpl-editor-wrap .tpl-html-toggle{position:absolute;top:6px;right:6px;z-index:5;background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:3px 10px;border-radius:6px;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;line-height:1}
.tpl-editor-wrap .tpl-html-toggle:hover{border-color:var(--accent);color:var(--accent)}
.tpl-editor-wrap.is-source .tpl-html-toggle{background:var(--accent);border-color:var(--accent);color:#fff}
.tpl-editor-wrap .tpl-html-source{width:100%;min-height:240px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:6px;font:13px/1.55 'Courier New',Consolas,monospace;resize:vertical;box-sizing:border-box}
.tpl-head{display:flex;align-items:center;gap:14px;margin:0 0 16px;flex-wrap:wrap}
.tpl-head-title{flex:1 1 auto;min-width:0}
.tpl-head-title h1{font-size:1.4rem}
.tpl-head-actions{display:flex;gap:6px;flex-wrap:wrap;flex:0 0 auto;margin-left:auto;align-items:center}
.tpl-enabled{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text);margin:0;cursor:pointer}
.tpl-form input[type=text]{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:6px;font:inherit}
#tpl-editor-host,#hdr-editor-host,#ftr-editor-host{min-height:220px;border-radius:0 0 6px 6px}
.ql-toolbar.ql-snow{background:var(--bg2);border:1px solid var(--line)!important;border-radius:6px 6px 0 0}
.ql-toolbar.ql-snow .ql-stroke{stroke:var(--text)}
.ql-toolbar.ql-snow .ql-fill{fill:var(--text)}
.ql-toolbar.ql-snow .ql-picker,.ql-toolbar.ql-snow button{color:var(--text)}
.ql-toolbar.ql-snow .ql-picker-options{background:var(--bg2);border-color:var(--line)}
.ql-toolbar.ql-snow button:hover .ql-stroke,.ql-toolbar.ql-snow button.ql-active .ql-stroke{stroke:var(--accent)}
.ql-toolbar.ql-snow button:hover .ql-fill,.ql-toolbar.ql-snow button.ql-active .ql-fill{fill:var(--accent)}
.ql-container.ql-snow{border:1px solid var(--line)!important;border-top:0!important;background:var(--bg);color:var(--text);font-family:'Montserrat',Arial,sans-serif}
.ql-editor{color:var(--text);min-height:220px}
.ql-editor.ql-blank::before{color:var(--muted);font-style:normal}
.ql-snow .ql-tooltip{background:var(--bg2);border-color:var(--line);color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ql-snow .ql-tooltip input[type=text]{background:var(--bg);border:1px solid var(--line);color:var(--text)}
.act-open{border-color:var(--muted);color:var(--text)}
.act-approve{background:#22b66f;border-color:#22b66f;color:#fff}
.act-paid{border-color:#22b66f;color:#22b66f}
.act-unpaid{border-color:#e9a03a;color:#e9a03a}
.act-block{border-color:#ff6b6b;color:#ff6b6b}
.act-unblock{border-color:#22b66f;color:#22b66f}
.act-trash{border-color:#ff6b6b;color:#ff6b6b}
.act-restore{border-color:#22b66f;color:#22b66f}
.act-delete-forever{background:#b73232;border-color:#b73232;color:#fff}
.act-save{background:var(--accent);border-color:var(--accent);color:#fff;margin-left:auto}
.act-save:hover{background:#8a7350;border-color:#8a7350;color:#fff;filter:none}
.btn-save{background:var(--accent);border:1px solid var(--accent);color:#fff;margin-left:auto;padding:8px 22px;font-size:.85rem;min-height:36px;border-radius:50px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;display:inline-flex;align-items:center}
.btn-save:hover{background:#8a7350;border-color:#8a7350;color:#fff}
.admin-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.admin-actions form{display:inline}

/* Dark scrollbars */
*{scrollbar-width:thin;scrollbar-color:var(--line) var(--bg)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg)}
*::-webkit-scrollbar-thumb{background:var(--bg3);border-radius:5px;border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:var(--line)}
*::-webkit-scrollbar-corner{background:var(--bg)}

/* compact country selector for /search.php top row */
.f-country-compact{flex:1 1 0;min-width:0;display:flex}
.f-country-compact .cs{flex:1}
.f-country-compact .cs-trigger{font-size:.78rem;padding:0 12px}

/* ==== Statistics ==== */
.stats-page{max-width:none;padding:30px 20px}
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px}
.stat-card{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:14px;text-align:center}
.stat-card .stat-num{font-size:1.6rem;font-weight:800;color:var(--white);line-height:1}
.stat-card .stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:6px}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.stat-block{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:14px}
.stat-block h3{margin:0 0 10px;font-size:.95rem}
.stat-table{width:100%;font-size:.85rem;border-collapse:collapse}
.stat-table td{padding:5px 0;vertical-align:middle}
.stat-table .stat-key{color:var(--text);width:50%;padding-right:8px}
.stat-table .stat-val{color:var(--white);font-weight:700;width:40px;text-align:right;padding-right:8px}
.stat-table .stat-bar-cell{width:100%}
.stat-bar{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.stat-bar-fill{height:100%;background:var(--accent);transition:width .3s}
.admin-list{overflow-y:auto;overflow-x:hidden;min-width:0;background:var(--bg2);border:1px solid var(--line);border-radius:6px}
.admin-detail{min-width:0}
.admin-list .row{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center;background:var(--bg2);margin-bottom:5px}
.admin-list .row.is-paid{background:rgba(40,120,70,.18)}
.admin-list .row.is-unpaid{background:rgba(180,40,40,.18)}
.admin-list .row.is-blocked-row{background:rgba(120,30,30,.32)}
.admin-list .row:hover{filter:brightness(1.2)}
.admin-list .row.active{box-shadow:inset 4px 0 0 var(--accent)}
.admin-list .row img{width:54px;height:54px;border-radius:6px;object-fit:cover}
.admin-list .row .meta{flex:1}
.admin-list .row .name{color:var(--white);font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.admin-list .row .name .name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}
.admin-list .row .name .name-age{color:var(--muted);font-weight:600;font-size:.85rem;flex:0 0 auto;white-space:nowrap}
.admin-list .row .sub{color:var(--muted);font-size:.78rem;margin-top:3px}
.admin-list .row .badge{padding:2px 8px;border-radius:50px;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em}
.badge.green{background:#1a4d2a;color:#7ee2a3}
.badge.red{background:#4d1a1a;color:#ff8e8e}
.badge.gray{background:var(--bg3);color:var(--muted)}
.badge.online{background:#0d6e3b;color:#9ff5c2}
.badge.rating{background:#3a2a4d;color:#d3b6f5}
.admin-list .row .badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.admin-detail{overflow-y:auto;padding:24px;display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--line);border-radius:6px}
.admin-search{position:sticky;top:0;background:var(--bg);padding:14px;border-bottom:1px solid var(--line);z-index:5}
.admin-search input,.admin-search select{margin-right:6px;margin-bottom:6px}

.admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:18px}
.admin-tabs a{padding:10px 18px;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.1em;border-bottom:2px solid transparent;text-decoration:none}
.admin-tabs a:hover{color:var(--text)}
.admin-tabs a.active{color:var(--white);border-bottom-color:var(--accent)}

.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.media-cell{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.media-cell img,.media-cell video{width:100%;aspect-ratio:1;object-fit:cover;display:block;cursor:zoom-in}
.media-cell.is-blocked img,.media-cell.is-blocked video{opacity:.35}
.media-flag{position:absolute;top:6px;left:6px;background:rgba(255,0,0,.85);color:#fff;font-size:.6rem;letter-spacing:.1em;padding:2px 6px;border-radius:3px;font-weight:700;text-transform:uppercase}
.media-actions{position:absolute;left:0;right:0;bottom:0;display:flex;gap:6px;padding:6px;justify-content:space-between;background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,0));z-index:2;pointer-events:none}
.media-actions form{pointer-events:auto}
.media-icon-btn{width:26px;height:26px;padding:0;border:1px solid rgba(255,255,255,.6);color:#fff;background:rgba(0,0,0,.5);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:0;font-size:0}
.media-icon-btn:hover{background:rgba(0,0,0,.8);border-color:#fff}
.media-icon-btn svg{display:block}
.media-icon-del{border-color:#ff8e8e;color:#ff8e8e}
.media-icon-del:hover{background:#ff8e8e;color:#000}

.chats-split{display:grid;grid-template-columns:240px 1fr;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;min-height:500px}
.chats-partners{background:var(--bg2);border-right:1px solid var(--line);overflow-y:auto;max-height:600px}
.chats-partner-head{padding:10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--line)}
.chats-partner{display:flex;gap:8px;align-items:center;padding:8px 10px;text-decoration:none;color:var(--text);font-size:.85rem;border-bottom:1px solid var(--line)}
.chats-partner img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.chats-partner:hover{background:var(--bg3)}
.chats-partner.active{background:var(--bg3);border-left:3px solid var(--accent)}
.chats-window{display:flex;flex-direction:column;max-height:600px}
.chats-window-head{padding:10px 14px;border-bottom:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.chats-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:6px}
.chats-messages .msg{display:flex;flex-direction:column;max-width:75%}
.chats-messages .msg.us{align-self:flex-end;align-items:flex-end}
.chats-messages .msg.them{align-self:flex-start;align-items:flex-start}
.chats-messages .msg-bubble{background:var(--bg3);color:var(--text);padding:7px 11px;border-radius:14px}
.chats-messages .msg.us .msg-bubble{background:var(--accent);color:#fff}
.chats-messages .msg-time{font-size:.65rem;margin-top:2px}
.chats-send{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}

.rating-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.rating-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--muted);background:var(--bg2);color:var(--text);font:inherit;font-weight:700;font-size:.78rem;cursor:pointer;transition:.15s;padding:0}
.rating-btn:hover{border-color:var(--accent);color:var(--accent)}
.rating-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.meta-rating-tag{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}
.meta-tag-input{flex:0 0 100px;width:100px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:7px 12px;border-radius:6px;font:inherit;font-size:.85rem;margin-left:auto;margin-right:8px}
.acct-meta{margin:0 0 14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.acct-row{display:flex;align-items:center;gap:6px;font-size:.9rem;max-width:100%}
.acct-row .acct-label{color:var(--muted);font-weight:600;min-width:80px;flex-shrink:0}
.acct-row .acct-val{font-family:monospace;color:var(--text);word-break:break-all}
.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--muted);cursor:pointer;flex-shrink:0;transition:.15s;padding:0}
.copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.copy-btn.copied{border-color:#2ecc71;color:#2ecc71}
.copy-text{cursor:pointer;transition:.15s}
.copy-text:hover{color:var(--accent)}
.copy-text.copied{color:#2ecc71}
.name-blocked{color:#ff6b6b}
.params-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 20px;font-size:.9rem;margin:0 0 10px}
.params-col{display:flex;flex-direction:column;gap:6px;min-width:0}
.params-col>div{word-break:break-word}
.params-lifestyle{display:flex;flex-direction:column;gap:6px;font-size:.9rem}
.params-lifestyle-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 20px}
.params-lifestyle-row-full{grid-template-columns:1fr}
.params-lifestyle-row>div{word-break:break-word}
.meta-comment{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:6px 10px;border-radius:6px;font:inherit;font-size:.88rem;resize:vertical;min-height:50px;height:50px}

/* ==== Age picker popup ==== */
.age-picker{position:relative;height:34px;display:flex;align-items:center}
.age-trigger{width:100%;height:34px;background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:0 14px;border-radius:50px;cursor:pointer;text-align:left;font:inherit;font-size:.82rem;display:flex;align-items:center;justify-content:flex-start}
.age-trigger:hover{border-color:var(--accent)}
.age-trigger.has{color:var(--text)}
.age-trigger .age-trigger-val{color:var(--accent);font-weight:700;margin-left:4px}
.age-popup{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:99998;display:flex;align-items:center;justify-content:center;padding:20px}
.age-popup[hidden]{display:none}
.age-popup-inner{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:8px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;padding:22px 22px 18px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.age-close{flex:0 0 auto;width:40px;height:40px;background:var(--bg);border:1px solid #fff;color:var(--text);border-radius:50%;cursor:pointer;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;order:-1;margin-right:auto}
.age-close:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.age-popup-title{font-size:1.1rem;font-weight:700;margin-bottom:4px;text-align:center}
.age-popup-range{font-size:.86rem;color:var(--muted);margin-bottom:14px;text-align:center}
.age-popup-range .age-from,.age-popup-range .age-to{color:var(--accent);font-weight:700;min-width:32px;display:inline-block}
.age-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px}
.age-cell{height:38px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;cursor:pointer;font:inherit;font-size:.86rem;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,color .12s;-webkit-user-select:none;user-select:none;padding:0}
.age-cell:hover{border-color:var(--accent)}
.age-cell.is-mid{background:rgba(167,139,99,.18);border-color:rgba(167,139,99,.4);color:var(--text)}
.age-cell.is-start,.age-cell.is-end,.age-cell.is-single{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.age-popup-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}
.age-popup-actions .age-save{flex:1 1 auto;height:40px;line-height:40px;font-size:.92rem;padding:0 24px}
.age-popup-actions .age-reset{flex:0 0 auto;border:1px solid #fff;height:40px;line-height:40px;padding:0 16px}
@media(max-width:480px){
  .age-popup-inner{padding:18px 14px 14px}
  .age-cell{height:34px;font-size:.8rem}
  .age-grid{gap:3px}
}
@media(max-width:780px){
  /* Pin Age popup to bottom of screen (sheet-style). */
  .age-popup{padding:0;align-items:flex-end;justify-content:stretch}
  .age-popup-inner{width:100%;max-width:100%;max-height:90vh;border-radius:12px 12px 0 0;border-bottom:0;border-left:0;border-right:0;padding:18px 14px 14px}
}
@media(min-width:781px){
  .age-popup{position:absolute;inset:auto;top:calc(100% + 6px);left:0;right:auto;bottom:auto;background:transparent;padding:0;z-index:100;display:block;align-items:initial;justify-content:initial}
  .age-popup[hidden]{display:none}
  .age-popup-inner{width:380px;max-width:380px;max-height:none;padding:16px 16px 14px}
}

/* ==== Country popup selector ==== */
.cs{position:relative;flex:1 1 0;min-width:0}
.cs-trigger{width:100%;height:34px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:0 14px;border-radius:50px;cursor:pointer;text-align:left;font:inherit;font-size:.82rem;display:flex;align-items:center;justify-content:flex-start}
.cs-trigger:hover{border-color:var(--accent)}
.cs-trigger .cs-count{color:var(--accent);font-weight:700;margin-left:4px}
.cs-popup{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:99998;display:flex;align-items:center;justify-content:center;padding:20px}
.cs-popup[hidden]{display:none}
.cs-popup-inner{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:8px;width:100%;max-width:560px;height:60vh;display:flex;flex-direction:column;padding:22px 22px 18px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
@media(min-width:781px){
  .cs-popup{position:absolute;inset:auto;top:calc(100% + 6px);left:0;right:auto;bottom:auto;background:transparent;padding:0;z-index:100;display:block;align-items:initial;justify-content:initial}
  .cs-popup[hidden]{display:none}
  .cs-popup-inner{width:720px;max-width:720px;height:60vh;max-height:60vh}
}
.cs-close{flex:0 0 auto;width:42px;height:42px;background:var(--bg2);border:1px solid #fff;color:var(--text);border-radius:50%;cursor:pointer;font-size:1.3rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;order:-1;margin-right:auto}
.cs-close:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.cs-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);margin-bottom:8px}
.cs-tab{background:transparent;border:0;color:var(--muted);padding:8px 10px;font:inherit;font-size:.78rem;cursor:pointer;border-bottom:2px solid transparent;text-transform:uppercase;letter-spacing:.06em;font-weight:700;flex:1 1 0;min-width:0;text-align:center;line-height:1.15}
.cs-tab:hover{color:var(--text)}
.cs-tab.active{color:var(--white);border-bottom-color:var(--accent)}
.cs-list{flex:1 1 auto;overflow-y:auto;min-height:0;padding:6px;border:1px solid var(--line);border-radius:6px;margin-bottom:14px;background:var(--bg);display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px 6px;align-content:start}
@media(max-width:780px){.cs-list{grid-template-columns:1fr 1fr}}
.cs-item{padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.88rem;color:var(--text);transition:.12s;display:flex;align-items:center;-webkit-user-select:none;user-select:none}
.cs-item:hover{background:var(--bg3)}
.cs-item.is-on,.cs-item.is-on:hover{background:#A58B62;color:#fff}
.cs-item-all{grid-column:1 / -1}
.cs-item-all{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;border-bottom:1px solid var(--line);margin-bottom:4px;padding:10px 12px}
.cs-item-all:hover{background:rgba(167,139,99,.12)}
.cs-item-all.is-deselect{color:#ff8e8e}
.cs-item-all.is-deselect:hover{background:rgba(255,142,142,.12)}
.cs-actions{display:flex;gap:8px;align-items:center}
.cs-actions .cs-bulk{flex:0 0 auto;height:42px;padding:0 14px;font-size:.85rem;font-weight:700;line-height:42px;border:1px solid #fff}
.cs-actions .cs-save{flex:1 1 auto;width:auto;height:42px;line-height:42px;font-size:.95rem;padding:0 18px;text-align:center}

@media(max-width:780px){
  /* Push popup below the site header so the country tabs are not hidden. */
  .cs-popup{padding:0;top:60px}
  body:has(.admin-bar) .cs-popup{top:102px}
  .cs-popup-inner{height:100%;max-width:100%;border-radius:0;border-left:0;border-right:0;border-top:0;padding:16px 12px 12px}
  .cs-tabs{padding:0}
  .cs-tab{font-size:.62rem;padding:7px 4px;letter-spacing:.04em;white-space:normal;word-break:break-word}
}
@media(max-width:480px){
  .cs-tab{font-size:.58rem;padding:6px 2px}
}

/* ==== Toast notifications ==== */
.toast-wrap{position:fixed;bottom:20px;left:20px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}
.toast{background:var(--bg2);border:1px solid var(--accent);color:var(--white);padding:12px 18px;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.5);min-width:200px;max-width:360px;font-size:.88rem;animation:toast-in .25s ease-out,toast-out .35s 3.5s forwards;pointer-events:auto}
.toast.toast-error{border-color:#ff8e8e;color:#ffd0d0}
.toast.toast-success{border-color:#7ee2a3;color:#d6f5e1}
.toast.toast-info{border-color:var(--accent);color:#fff}
@keyframes toast-in{from{transform:translateX(140%);opacity:0}to{transform:none;opacity:1}}
@keyframes toast-out{to{transform:translateX(140%);opacity:0}}

/* ==== Filter buttons (status / rating) ==== */
.btn-pills{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.btn-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:5px 10px;border-radius:50px;font-size:.78rem;cursor:pointer;user-select:none;transition:.15s}
.btn-pill input{position:absolute;opacity:0;pointer-events:none}
.btn-pill:hover{border-color:var(--accent);color:var(--accent)}
.btn-pill.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-ghost.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-pill.rating-pill{width:28px;height:28px;padding:0;border-radius:50%;font-weight:700}

/* ==== Support ==== */
.support-admin{grid-template-columns:minmax(0,25%) minmax(0,75%);grid-template-rows:auto 1fr}
.support-admin .admin-filters{grid-column:1/-1}
.support-admin #support-page-select{min-width:48px;width:auto;padding-right:18px}
.support-page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.support-page-head h1{margin:0}
.support-grid{display:grid;grid-template-columns:minmax(0,25%) minmax(0,75%);gap:14px;align-items:start}
.support-page .support-list{display:flex;flex-direction:column;gap:0;background:transparent;border:0;padding:0}
.support-page .support-list .ticket-row{border-radius:6px;border:none;margin:0 0 6px 0;background:#091E2C}
.support-page .support-list .ticket-row:hover{background:#0c2638}
.support-page .support-detail{background:#091E2C;border-radius:6px}
.support-new-btn{text-align:center}
.ticket-back-inline{display:none}
@media(max-width:780px){
  .support-grid{grid-template-columns:1fr}
  /* Telegram-style two screens: list OR detail, never both */
  .support-page .support-detail{display:none}
  body.detail-open .support-page .support-detail{display:flex}
  body.detail-open .support-page .support-list{display:none}
  body.detail-open .support-page .support-page-head{display:none}
  body.page-support.detail-open{overflow:auto}
  /* Inline Back button replaces FAB on user mobile, matches Close ticket */
  .ticket-back-inline{display:inline-flex}
  body.page-support.detail-open .admin-detail-back{display:none}
  .support-page .ticket-head-actions{gap:8px;width:100%;justify-content:stretch}
  .support-page .ticket-head-actions > form{flex:7 1 0;display:flex;margin:0}
  .support-page .ticket-head-actions > form > .btn{width:100%;justify-content:center}
  .support-page .ticket-head-actions > .ticket-back-inline{flex:3 1 0;justify-content:center}
  .support-page .ticket-head-actions .btn-outline{border-color:#bbb;color:#bbb}
  .support-page .ticket-head-actions .btn-outline:hover{background:#bbb;color:var(--bg)}
  /* Send reply full width on mobile */
  .support-page .reply-form-bottom{display:block}
  .support-page .reply-form-bottom > .btn{width:100%}
}
.support-empty{padding:18px;text-align:center;font-size:.85rem}
.support-detail,.support-admin-detail{padding:24px;display:flex;flex-direction:column}
.support-admin-list{padding:0;background:transparent;border:0}
.support-admin-list .ticket-row{border-radius:0;border:none;border-bottom:1px solid var(--line);margin:0 0 5px 0}

/* ===== Backups list as panels (replaces the old table layout) ===== */
.backup-list{display:flex;flex-direction:column;gap:0}
.backup-card{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:10px 14px;display:flex;flex-direction:row;align-items:center;gap:14px;transition:.15s;margin-bottom:5px;flex-wrap:nowrap}
.backup-card:hover{border-color:var(--accent)}
.backup-card-head{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0;flex-wrap:nowrap}
.backup-card-name{font-family:monospace;font-size:.85rem;color:var(--white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}
.backup-card-size{font-weight:700;color:var(--white);font-size:.82rem;flex:0 0 auto;white-space:nowrap}
.backup-card-meta{font-size:.78rem;flex:0 0 auto;white-space:nowrap}
.backup-card-actions{display:flex;gap:8px;flex-wrap:nowrap;margin:0;justify-content:flex-end;flex:0 0 auto}
.backup-card-actions form{display:inline;margin:0}
.backup-card-actions .btn{flex:0 0 auto;width:90px;min-width:90px;height:28px;padding:0 10px;font-size:.7rem;border-width:1px;border-style:solid;justify-content:center;text-align:center;box-sizing:border-box;display:inline-flex;align-items:center}
.backup-card-restore{border-color:#fff;color:#fff}
.backup-card-restore:hover{border-color:var(--accent);color:var(--accent)}
.backup-card-delete{color:#ff8e8e;border-color:rgba(255,142,142,.5)}
.backup-card-delete:hover{border-color:#ff8e8e}
.backup-card-delete-btn{width:28px;height:28px;padding:0;border:1px solid #ff8e8e;color:#ff8e8e;background:transparent;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:0;font-size:0;flex:0 0 auto}
.backup-card-delete-btn:hover{background:#ff8e8e;color:var(--bg)}
.backup-card-delete-btn svg{display:block}

.ticket-row{display:block;text-decoration:none;color:var(--text);background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:10px 12px;transition:.15s;margin-bottom:5px}
.ticket-row:hover{border-color:var(--accent)}
.ticket-row.active{box-shadow:inset 4px 0 0 var(--accent)}
.ticket-row-subj{font-weight:700;color:var(--white);font-size:.9rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}
.ticket-row-meta{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:.75rem}
.ticket-badge{padding:2px 8px;border-radius:50px;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.ticket-badge.s-client{background:rgba(200,160,40,.25);color:#e6c656}
.ticket-badge.s-admin{background:rgba(40,120,200,.25);color:#6aa8e6}
.ticket-badge.s-closed{background:var(--bg3);color:var(--muted)}

.ticket-head{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ticket-head h1{margin:0 0 8px;font-size:1.4rem}
.ticket-head-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.82rem}
.ticket-head-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:780px){
  .support-page .ticket-head h1{text-align:center}
  .support-page .ticket-head-meta{flex-direction:column;align-items:center;gap:12px}
  .support-page .ticket-head-actions{margin-left:0;justify-content:center;width:100%}
}

.replies{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.reply{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-width:70%}
.reply-admin{background:rgba(58,169,224,.18);border-color:rgba(58,169,224,.45);align-self:flex-start;border-bottom-left-radius:3px}
.reply-client,
.reply-user{background:#301D3A;border-color:rgba(167,139,99,.45);align-self:flex-end;border-bottom-right-radius:3px}
.reply-head{display:flex;gap:10px;margin-bottom:6px;font-size:.8rem}
.reply-body{white-space:pre-wrap;font-size:.9rem;line-height:1.45}
.reply-files{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.reply-files img{width:90px;height:90px;object-fit:cover;border-radius:6px;cursor:zoom-in;border:1px solid var(--line)}

.ticket-form{display:flex;flex-direction:column;gap:10px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:18px}
.ticket-form .row label{display:block;margin-bottom:6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.ticket-form input[type=text],.ticket-form textarea{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:6px;font:inherit}
.reply-form textarea{min-height:90px}
.ticket-form.reply-form{padding:0;border:0;background:transparent}
.reply-form-bottom{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}
.ticket-closed-note{margin:0 0 14px}
.ticket-head-actions{margin-left:auto;display:flex;gap:6px}

/* Drag-n-drop zone */
.dnd-zone{position:relative;display:block;border:2px dashed var(--line);border-radius:8px;background:var(--bg);padding:6px;cursor:pointer;transition:.15s;outline:none}
.dnd-zone:hover,.dnd-zone:focus-visible{border-color:var(--accent);background:rgba(255,255,255,.02)}
.dnd-zone.over{border-color:var(--accent);border-style:solid;background:rgba(255,107,107,.08)}
.dnd-zone .dnd-prompt{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:4px;text-align:center;color:var(--muted);font-size:.78rem;pointer-events:none;flex-wrap:wrap}
.dnd-zone .dnd-icon{color:var(--muted);opacity:.7;flex-shrink:0}
.dnd-zone:hover .dnd-icon,.dnd-zone.over .dnd-icon{color:var(--accent);opacity:1}
.dnd-zone .dnd-link{color:var(--accent);text-decoration:underline}
.dnd-zone .dnd-hint{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.dnd-zone.has-files .dnd-prompt{padding:4px;font-size:.74rem}
.dnd-zone.has-files .dnd-hint{display:none}
@media(max-width:780px){
  /* Mobile: no drag-and-drop — render as a simple button */
  .dnd-zone{border:1px solid #bbb;border-radius:6px;background:var(--bg2);padding:10px 14px;display:flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box}
  .dnd-zone .dnd-prompt{font-size:.85rem;padding:0;gap:6px;justify-content:center;align-items:center}
  .dnd-zone .dnd-text{color:#bbb}
  .dnd-zone .dnd-drop-prefix{display:none}
  .dnd-zone .dnd-text .dnd-link{text-decoration:none;color:#bbb}
  .dnd-zone .dnd-hint{display:none}
  .dnd-zone .dnd-icon{color:#bbb;opacity:1;display:block}
}
.dnd-previews{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dnd-preview{position:relative;width:90px;height:90px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg2)}
.dnd-preview img{width:100%;height:100%;object-fit:cover;display:block}
.dnd-preview .dnd-name{position:absolute;left:0;right:0;bottom:0;padding:2px 4px;font-size:.65rem;color:#fff;background:rgba(0,0,0,.55);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dnd-preview .dnd-del{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.7);color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.dnd-preview .dnd-del:hover{background:#c33}

/* Support list head (user) */
.support-list-head{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.support-list-head .filter-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:2px 8px;background:var(--bg3);border-radius:6px}
.support-list-head .filter-count{font-weight:800;color:var(--accent);font-size:.9rem;min-width:30px;text-align:left;margin-right:auto}
.support-list-head .page-select{width:70px;flex:0 0 70px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 8px;border-radius:6px;font:inherit;font-size:.78rem;height:28px;margin-left:auto}
.support-list-body{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}

/* Profile Save row (bottom-right) */
.profile-save-row{display:flex;justify-content:flex-end;margin-top:24px}

.nav-icons{display:none}
/* ===== Mobile (frontend) ===== */
@media(max-width:780px){
  .nav-burger{display:flex}
  .nav{padding:10px 15px;position:relative}
  .nav-icons{display:flex;align-items:center;gap:2px;margin-left:auto;margin-right:6px}
  .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--text);position:relative;border-radius:6px}
  .nav-icon:hover,.nav-icon:focus-visible{color:var(--accent);background:rgba(255,255,255,.04)}
  .nav-icon.active{color:var(--accent)}
  .nav-icon .chat-menu-dot{position:absolute;top:6px;right:6px;margin-left:0;vertical-align:baseline;box-shadow:0 0 0 2px var(--bg)}
  /* Header must stack above chat-panel (z 2000) so the burger menu overlays it,
     mirroring admin-bar behavior (z 9999). Fixed (not sticky) — no scroll jitter. */
  header.site{z-index:9990;position:fixed;top:0;left:0;right:0}
  .admin-bar{position:fixed;top:0;left:0;right:0}
  body > main{padding-top:var(--top-bars-h,71px)}
  body:has(.admin-bar) > main{padding-top:var(--top-bars-h,55px)}
  header.site .menu{display:none;position:absolute;top:100%;right:0;left:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 0;z-index:9991}
  header.site .menu.is-open{display:flex}
  header.site .menu a:not(.btn){padding:12px 18px;border-bottom:1px solid var(--line)}
  header.site .menu a:not(.btn):last-child{border-bottom:0}
  header.site .menu .btn{margin:6px 18px;text-align:center}
  header.site .menu a.mobile-hide-in-menu{display:none}
}
@media(max-width:680px){
  .container{padding-left:15px;padding-right:15px}
  .profile .info .params{grid-template-columns:1fr}
  footer.site .footer-row{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px}
  footer.site .footer-links{justify-content:center}
  .profile-head{flex-direction:column;align-items:stretch;gap:10px}
  .profile-head h1{font-size:1.4rem}
  .profile-head .payments-sub{justify-content:space-between}
  .profile-head .btn{width:100%;text-align:center;justify-content:center;white-space:normal!important}
  .profile-save-row{position:sticky;bottom:0;background:var(--bg);padding:10px 0;margin-top:18px;border-top:1px solid var(--line);z-index:5}
  .profile-save-row .btn{width:100%;text-align:center;justify-content:center}
  .payments-head{flex-direction:column;align-items:stretch;gap:8px}
  .payments-actions{flex-wrap:wrap}
  .form-grid{gap:10px}
  .form-card{margin-top:0;margin-bottom:0;padding-top:14px;padding-bottom:14px}
  body.page-login footer.site,
  body.page-register footer.site{margin-top:0}
  .email-flash > strong,
  .email-flash > .muted{display:block}
  .email-flash-form{display:block!important;margin-left:0!important;margin-top:8px}
  .profile-status{text-align:center}
  .profile-delete{justify-content:center}
}

/* ===== Mobile (admin) ===== */
.admin-detail-back{display:none}
.admin-detail-cover{display:none}
@media(max-width:780px){
  .admin-bar{position:sticky;top:0;z-index:9999;display:flex;align-items:center;gap:0}
  .admin-burger{display:flex;margin:4px 10px;flex:0 0 auto}
  .admin-bar-icons{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:6px;padding:0 10px;flex-wrap:nowrap}
  .admin-bar-icons .admin-bar-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;color:var(--muted);padding:0;border:0;background:transparent;letter-spacing:0;text-transform:none}
  .admin-bar-icons .admin-bar-icon:hover,
  .admin-bar-icons .admin-bar-icon.active{color:var(--accent);background:rgba(167,139,99,.12)}
  .admin-bar-icons .admin-bar-icon svg{display:block}
  .admin-bar-inner{display:none;flex-direction:column;align-items:stretch;gap:0;padding:6px 0;position:absolute;top:100%;left:0;right:0;background:var(--bg2);border-bottom:1px solid var(--line);z-index:60}
  .admin-bar-inner.is-open{display:flex}
  .admin-bar-inner a{padding:10px 18px;border-bottom:1px solid var(--line)}
  .admin-bar-inner a.admin-mobile-hide{display:none}
  .admin-bar-inner a:last-child{border-bottom:0;margin-left:0}
  body:has(.admin-bar) header.site{top:42px}
  .admin-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100vh - 70px)}

  /* List takes full width on mobile */
  .admin-list{border-right:0;border-bottom:0;max-height:none;width:100%;grid-column:1/-1}

  /* Filter as fixed slide-in panel from right (80vw), full viewport height —
     overlays the admin header bar (z-index above admin-bar's 51). */
  .admin-filters{
    position:fixed;top:0;bottom:0;right:-80vw;width:80vw;max-width:80vw;
    background:var(--bg2);border:0;border-left:1px solid var(--line);
    transition:right .3s ease;z-index:9996;margin:0;padding:0;
    display:flex;flex-direction:column;box-shadow:-10px 0 30px rgba(0,0,0,.4);
    grid-column:auto;overflow:hidden;
  }
  .admin-filters.is-open{right:0}
  body.filter-open{overflow:hidden}
  body.filter-open .filters-fab{display:none}

  /* Generic — applies to every admin filter form on mobile (Users, Support,
     Emails, Templates, Payments) so the panel scrolls and stacks vertically. */
  .admin-filters form{
    display:flex;flex:1 1 auto;overflow-y:auto;padding:14px 12px;gap:12px;
    flex-direction:column;align-items:stretch;position:relative;
    min-height:0;width:100%;
  }
  .admin-filters form > *{flex:0 0 auto;width:100%}
  .admin-filters form input[type=hidden]{width:0;height:0;padding:0;margin:0}
  .admin-filters .filter-row{
    display:flex;flex-direction:column;flex-wrap:nowrap;gap:10px;width:100%;
    align-items:stretch;
  }
  #admin-root .admin-filters .filter-row:first-of-type{padding-left:0}
  /* Generic input/select sizing for filter forms. The .adm-grp-tca and
     filter-meta rules below have higher specificity and override these. */
  .admin-filters form input[type=text],
  .admin-filters form input[type=search],
  .admin-filters form input[type=date],
  .admin-filters form select{
    width:100%;height:36px;padding:6px 12px;font-size:.85rem;border-radius:6px;
    background:var(--bg);border:1px solid var(--line);color:var(--text);box-sizing:border-box;
  }
  .admin-filters form label{
    display:flex;align-items:center;gap:6px;width:100%;color:var(--text);font-size:.85rem;
  }
  .admin-filters form > .btn,
  .admin-filters form > a.btn,
  .admin-filters form > button:not(.filters-submit):not(.filters-close-x):not(.filters-reset-mobile){
    width:100%;height:36px;padding:0 14px;font-size:.9rem;border-radius:6px;
    display:inline-flex;align-items:center;justify-content:center;
  }

  /* Status pills 3 per row — height matches search field (32px) */
  #admin-root .admin-filters .admin-status-pills{
    display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;
    flex-wrap:nowrap;
  }
  #admin-root .admin-filters .admin-status-pills .btn-pill-sm{
    width:100%;height:32px;padding:0 4px;font-size:.78rem;justify-content:center;flex:0 0 auto;border-radius:6px;box-sizing:border-box;
  }

  /* Rating 5 per row, full-width pills — height matches search (32px) */
  #admin-root .admin-filters .rating-grid{
    display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%;
    flex-wrap:nowrap;
  }
  #admin-root .admin-filters .rating-grid .rating-pill{
    width:100%;height:32px;font-size:.85rem;padding:0;flex:0 0 auto;border-radius:6px;min-width:0;box-sizing:border-box;
  }

  /* Tag */
  .admin-filters .adm-grp-tca{display:contents}
  .admin-filters .adm-grp-tca .filter-select{
    width:100%;max-width:none;height:36px;font-size:.85rem;padding:0 12px;flex:0 0 auto;border-radius:6px;
  }
  /* Age */
  .admin-filters .age-picker{width:100%;flex:0 0 auto}
  .admin-filters .age-trigger{
    width:100%;height:36px;font-size:.85rem;padding:0 12px;border-radius:6px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }

  /* Countries / Cities — 1 row of 2 */
  .admin-filters .adm-grp-cc{
    display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;
  }
  .admin-filters .adm-grp-cc > *{min-width:0}
  .admin-filters .adm-grp-cc .cs{width:100%;flex:0 0 auto}
  .admin-filters .adm-grp-cc .cs-trigger{
    width:100%;height:36px;font-size:.85rem;padding:0 12px;border-radius:6px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .admin-filters .adm-grp-cc .filter-city{
    width:100%;max-width:none;height:36px;padding:6px 12px;font-size:.85rem;border-radius:6px;
    flex:0 0 auto;
  }

  /* Languages multi-select full width */
  .admin-filters .adm-f-lang{
    width:100%;max-width:none;flex:0 0 auto;
  }
  .admin-filters .adm-f-lang .ms-toggle{
    width:100%;height:36px;font-size:.85rem;padding:4px 12px;border-radius:6px;
  }

  /* Cities text input full width */
  .admin-filters .filter-city{
    width:100%;max-width:none;height:36px;padding:6px 12px;font-size:.85rem;
    background:var(--bg);border:1px solid var(--line);color:var(--text);
    border-radius:6px;box-sizing:border-box;flex:0 0 auto;
  }

  /* Search — full width, smaller height */
  .admin-filters .filter-search-wrap{width:100%;flex:0 0 auto;display:flex;align-items:center;position:relative}
  .admin-filters .filter-search{
    width:100%;height:32px;font-size:.85rem;padding:0 12px;border-radius:6px;flex:1 1 auto;
  }
  .admin-filters .filters-reset{
    width:100%;height:36px;padding:0 14px;font-size:.9rem;border-radius:6px;
    display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  }
  .admin-filters .filter-meta{width:100%;justify-content:space-between;flex-wrap:wrap;gap:8px}
  .admin-filters #admin-page-select,
  .admin-filters #admin-sort-select{height:32px;font-size:.82rem;border-radius:6px}

  /* Bottom action bar: [Reset] [×] — flush right; filtering is automatic */
  .admin-filters .admin-filters-actions{
    display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:10px;
    padding:12px 14px;border-top:1px solid var(--line);background:var(--bg2);
  }
  .admin-filters .admin-filters-actions .filters-submit{
    flex:1 1 auto;height:42px;border-radius:6px;font-size:.95rem;
  }
  .admin-filters .admin-filters-actions .filters-close-x,
  .admin-filters .admin-filters-actions .filters-reset-mobile{
    flex:0 0 auto;display:flex;width:42px;height:42px;
    background:var(--bg);border:1px solid var(--line);border-radius:6px;
    color:var(--text);font:inherit;line-height:1;
    cursor:pointer;align-items:center;justify-content:center;padding:0;
    position:static;
  }
  /* Force the first action button (Reset) hard against the right edge so both
     buttons sit flush right regardless of any inherited justify-content. */
  .admin-filters .admin-filters-actions .filters-reset-mobile{margin-left:auto}
  .admin-filters .admin-filters-actions .filters-close-x{font-size:1.5rem}
  .admin-filters .admin-filters-actions .filters-reset-mobile svg{display:block}
  .admin-filters .admin-filters-actions .filters-close-x:hover,
  .admin-filters .admin-filters-actions .filters-close-x:active,
  .admin-filters .admin-filters-actions .filters-reset-mobile:hover,
  .admin-filters .admin-filters-actions .filters-reset-mobile:active{
    background:var(--accent);border-color:var(--accent);color:#fff;
  }

  /* ===== Users-specific layout =====
     Mirror admin/chats: panel is bottom-pinned with auto height (capped at 90vh),
     so there's no empty space anywhere — content sums to its own height. */
  #admin-root.admin-layout .admin-filters,
  #admin-root .admin-filters{
    top:auto;bottom:0;height:auto;max-height:90vh;
    border-top:1px solid var(--line);
  }
  #admin-root .admin-filters form{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto auto auto auto auto auto;
    grid-template-areas:
      "search search"
      "meta meta"
      "pills pills"
      "rating rating"
      "tag age"
      "langs langs"
      "country country"
      "actions actions";
    padding:14px 12px;
    flex:0 1 auto;
  }
  /* Normalize Age trigger to match the Tag select visual height */
  #admin-root .admin-filters .adm-grp-tca .filter-select,
  #admin-root .admin-filters .age-trigger{
    height:36px;min-height:36px;line-height:34px;font-size:.85rem;padding:0 12px;
    border:1px solid var(--line);border-radius:6px;box-sizing:border-box;
  }
  #admin-root .admin-filters .age-trigger{display:flex;align-items:center;justify-content:flex-start}
  /* Actions bar — flush-right buttons, padding-top for separator from fields above */
  #admin-root .admin-filters .admin-filters-actions{
    margin:0;padding:12px 0 0;border-top:1px solid var(--line);
    display:flex;justify-content:flex-end;align-items:center;gap:10px;background:transparent;
  }
  #admin-root .admin-filters form input[type=hidden]{display:none}
  #admin-root .admin-filters .filter-row{display:contents}
  #admin-root .admin-filters .filter-search{grid-area:search;width:100%}
  #admin-root .admin-filters .filter-meta{
    grid-area:meta;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;
    background:transparent;padding:0;height:auto;flex:none;width:auto;max-width:none;
  }
  #admin-root .admin-filters .filter-meta .filter-count{
    width:auto;min-width:0;height:32px;line-height:30px;font-size:.85rem;border-radius:6px;text-align:center;
  }
  #admin-root .admin-filters .filter-meta select[name=page],
  #admin-root .admin-filters .filter-meta select[name=sort]{
    height:32px;width:auto;min-width:0;font-size:.82rem;border-radius:6px;padding:0 22px 0 8px;
  }
  #admin-root .admin-filters .admin-status-pills{grid-area:pills}
  #admin-root .admin-filters .rating-grid{grid-area:rating}
  #admin-root .admin-filters .adm-grp-tca{display:block;grid-area:tag}
  #admin-root .admin-filters .age-picker{grid-area:age;margin-top:5px}
  #admin-root .admin-filters .adm-f-lang{grid-area:langs}
  #admin-root .admin-filters .adm-grp-cc{grid-area:country}
  #admin-root .admin-filters .admin-filters-actions{grid-area:actions}
  /* Hide standalone Reset on mobile (it's now inside the actions bar) */
  #admin-root .admin-filters .filters-reset{display:none}

  /* Detail: fixed slide-in from right, starts below admin-bar (~42px) +
     site header (~69px) so both top bars remain visible while editing. */
  .admin-detail{
    position:fixed;top:111px;left:auto;right:-100vw;bottom:0;width:100vw;height:auto;
    background:var(--bg);transition:right .3s ease;z-index:9500;
    overflow-y:auto;padding:14px;border:0;max-height:none;grid-column:auto;
  }
  .admin-detail.is-open{right:0}
  body.detail-open{overflow:hidden}
  body.detail-open .filters-fab{display:none}

  /* Back button as floating action button (bottom-right), like the filter FAB.
     Hidden by default — only shown when body has `detail-open`, so the FAB
     doesn't float over closed-panel pages. */
  .admin-detail-back{display:none}
  body.detail-open .admin-detail-back{
    display:flex;position:fixed;bottom:20px;right:20px;
    width:56px;height:56px;border-radius:50%;
    background:var(--accent);border:0;color:#fff;
    align-items:center;justify-content:center;
    cursor:pointer;padding:0;margin:0;
    z-index:9990;box-shadow:0 6px 18px rgba(0,0,0,.4);
  }
  body.detail-open .admin-detail-back:hover,
  body.detail-open .admin-detail-back:active{background:#8a7350;color:#fff}
  body.detail-open .admin-detail-back svg{display:block}
  body.detail-open .admin-detail-back .admin-detail-back-text{display:none}

  /* First gallery photo as 200×200 centered cover above the detail header */
  .admin-detail-cover{display:flex;justify-content:center;margin:0 0 14px}
  .admin-detail-cover img{width:200px;height:200px;display:block;object-fit:cover;border-radius:8px}

  /* Toast notifications: bottom-left on mobile (was bottom-right on desktop) */
  .toast-wrap{right:auto;left:20px}

  /* Detail header — centered name / wallet / paid-until on mobile */
  .admin-detail h1,
  #admin-detail h1{
    flex-direction:column !important;
    align-items:center !important;
    text-align:center;
    gap:6px !important;
  }
  .admin-detail h1 .paid-until,
  #admin-detail h1 .paid-until{margin-left:0 !important}
  .admin-detail h1 .hdr-wallet,
  #admin-detail h1 .hdr-wallet{text-align:center}

  /* Detail Action buttons — 4 per row (Login / Block / Trash / Profile)
     Row gap is larger than column gap to visually separate sections. */
  .admin-actions{display:grid;grid-template-columns:repeat(4,1fr);row-gap:14px;column-gap:6px;align-items:stretch}
  .admin-actions form{display:block;margin:0}
  .admin-actions .act{width:100%;justify-content:center;min-height:34px;padding:4px 4px;font-size:.66rem}
  .admin-actions > a.act{width:100%}

  /* Rating row — 5 per row, less rounded */
  .admin-actions .rating-row{
    grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;
  }
  .admin-actions .rating-row form{display:block;margin:0}
  .admin-actions .rating-row .rating-btn{width:100%;height:36px;border-radius:6px}

  /* Tag input + Save on the same row — tag wide, save narrow on the right */
  .admin-actions .meta-tag-input{
    grid-column:1/4;width:100%;margin:0;flex:none;
  }
  .admin-actions .act-save{
    grid-column:4/-1;width:100%;margin:0;justify-content:center;
    background:transparent;border-color:#22b66f;color:#22b66f;
  }
  .admin-actions .act-save:hover,.admin-actions .act-save:active{
    background:#22b66f;border-color:#22b66f;color:#fff;
  }

  /* Characteristics 1 column */
  .params-3col{grid-template-columns:1fr;gap:6px}
  .params-lifestyle-row{grid-template-columns:1fr}

  .admin-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .admin-tabs a{padding:10px 12px;font-size:.72rem;flex:0 0 auto}
  .pay-add-row{flex-direction:column;align-items:stretch}
  .pay-add{flex-wrap:wrap}
  .media-grid{grid-template-columns:repeat(2,1fr)!important}
  .hdr-wallet{font-size:.85rem!important;word-break:break-all}

  /* ===== Chat admin — mobile slide pattern.
     Pinned to bottom, height fits the content (capped at 90vh). ===== */
  .admin-chat{display:block;height:auto;position:relative}
  .admin-chat-filters{
    position:fixed;top:auto;bottom:0;right:-80vw;width:80vw;max-width:80vw;
    height:auto;max-height:90vh;
    background:var(--bg2);border:0;border-left:1px solid var(--line);border-top:1px solid var(--line);
    transition:right .3s ease;z-index:9996;display:flex;flex-direction:column;
    box-shadow:-10px 0 30px rgba(0,0,0,.4);padding:14px 12px;gap:10px;margin:0;
    overflow-y:auto;align-items:stretch;
  }
  .admin-chat-filters.is-open{right:0}
  .admin-chat-filters > *{width:100%;flex:0 0 auto;margin:0}
  .admin-chat-filters .admin-chat-userbox{position:relative;flex:0 0 auto}
  /* Override universal flex:1 / flex:0 0 20% so heights stay at 38px */
  .admin-chat-filters .admin-chat-q,
  .admin-chat-filters .admin-chat-partner-select{flex:0 0 auto}
  .admin-chat-filters .admin-chat-user-input,
  .admin-chat-filters .admin-chat-partner-select,
  .admin-chat-filters .admin-chat-q{
    width:100%;height:38px;min-height:38px;max-height:38px;
    border-radius:6px;padding:0 12px;font-size:.85rem;
    background:var(--bg);border:1px solid var(--line);color:var(--text);box-sizing:border-box;
  }
  .admin-chat-filters .admin-chat-meta{
    flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;
    background:transparent;padding:0;height:auto;width:auto;max-width:none;
  }
  .admin-chat-filters .admin-chat-meta .filter-count{
    width:auto;min-width:0;height:32px;line-height:30px;font-size:.85rem;border-radius:6px;text-align:center;padding:0 6px;
  }
  .admin-chat-filters .admin-chat-meta select[name=page],
  .admin-chat-filters .admin-chat-meta select[name=sort]{
    height:32px;width:auto;min-width:0;font-size:.82rem;border-radius:6px;padding:0 22px 0 8px;
  }
  .admin-chat-filters .btn{width:100%;height:38px;font-size:.9rem}
  .admin-chat-filters .admin-chat-count{align-self:flex-start;color:var(--muted)}
  /* Hide standalone reset link — proxy lives inside the actions bar */
  .admin-chat-filters .admin-chat-reset{display:none}
  .admin-chat-filters .admin-filters-actions{
    margin-top:auto;display:flex;flex-direction:row;justify-content:flex-end;gap:10px;align-items:center;
    padding:12px 0 0;border-top:1px solid var(--line);
  }
  .admin-chat-filters .admin-filters-actions .filters-close-x,
  .admin-chat-filters .admin-filters-actions .filters-reset-mobile{
    flex:0 0 auto;width:42px;height:42px;background:var(--bg);border:1px solid var(--line);
    border-radius:6px;color:var(--text);font:inherit;line-height:1;
    cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;position:static;
  }
  .admin-chat-filters .admin-filters-actions .filters-close-x{font-size:1.5rem}
  .admin-chat-filters .admin-filters-actions .filters-reset-mobile svg{display:block}
  .admin-chat-filters .admin-filters-actions .filters-close-x:hover,
  .admin-chat-filters .admin-filters-actions .filters-close-x:active,
  .admin-chat-filters .admin-filters-actions .filters-reset-mobile:hover,
  .admin-chat-filters .admin-filters-actions .filters-reset-mobile:active{
    background:var(--accent);border-color:var(--accent);color:#fff;
  }

  .admin-chat-body{display:block;height:auto;grid-template-columns:1fr}
  .admin-chat-list{width:100%;max-height:none;height:auto;border-right:0;border-bottom:1px solid var(--line)}
  .admin-chat-view{
    position:fixed;top:111px;left:auto;right:-100vw;bottom:0;width:100vw;height:auto;
    background:var(--bg);transition:right .3s ease;z-index:9500;
    overflow-y:auto;padding:14px;border:0;display:flex;flex-direction:column;
  }
  .admin-chat-view.is-open{right:0}
  body.detail-open .filters-fab{display:none}
  .admin-chat-view-head{flex:0 0 auto}
  .admin-chat-messages{flex:1 1 auto;overflow-y:auto}

  /* ===== Payments admin — mobile slide filter (pinned to bottom) ===== */
  .admin-payments-page{display:block;height:auto;position:relative;padding:14px}
  .admin-payments-page > .admin-filters{
    position:fixed;top:auto;bottom:0;right:-80vw;width:80vw;max-width:80vw;
    height:auto;max-height:90vh;z-index:9996;
  }
  .admin-payments-page > .admin-filters.is-open{right:0}

  /* Filter form layout: 10-col grid, content packed at the bottom.
     Confirmed/Pending: 2 per row · From/To: 2 per row · presets: 5 per row.
     No padding — fields flush with the panel edges. */
  .admin-payments-page .admin-filters form{
    display:grid;
    grid-template-columns:repeat(10, 1fr);
    gap:8px 6px;padding:0;align-content:end;
  }
  .admin-payments-page .admin-filters input[type=hidden]{display:none}
  .admin-payments-page .admin-filters .filter-meta{
    grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px;
    padding:0;background:transparent;width:auto;max-width:none;flex:none;height:auto;
  }
  .admin-payments-page .admin-filters .filter-meta .filter-count{
    width:auto;min-width:0;height:32px;line-height:30px;font-size:.85rem;border-radius:6px;text-align:center;padding:0 6px;
  }
  .admin-payments-page .admin-filters .filter-meta select[name=page]{
    height:32px;width:auto;min-width:0;font-size:.82rem;border-radius:6px;padding:0 22px 0 8px;
  }
  .admin-payments-page .admin-filters .pay-status-btn{
    grid-column:span 5;height:36px;padding:0 12px;font-size:.8rem;
    display:inline-flex;align-items:center;justify-content:center;border-radius:6px;
  }
  .admin-payments-page .admin-filters .pay-date-label{
    grid-column:span 5;font-size:.78rem;display:flex !important;align-items:center;gap:6px;margin:0 !important;
  }
  .admin-payments-page .admin-filters .pay-date-label input[type=date]{
    flex:1 1 auto;min-width:0;height:32px !important;padding:0 8px !important;
  }
  .admin-payments-page .admin-filters .pay-range-btn{
    grid-column:span 2;height:32px;padding:0 4px;font-size:.7rem;letter-spacing:0;
    display:inline-flex;align-items:center;justify-content:center;border-radius:6px;
  }
  /* Total sum forced to the very top of the filter */
  .admin-payments-page .admin-filters .payments-sum{
    grid-column:1/-1;grid-row:1;text-align:center;justify-self:center;
    margin:0 0 4px !important;color:#fff;font-size:1.3rem;
  }
  /* Hide the "From"/"To" text labels on mobile — leave just the date inputs */
  .admin-payments-page .admin-filters .pay-date-label-text{display:none}
  .admin-payments-page .admin-filters .filters-reset{display:none}
  .admin-payments-page .admin-filters .admin-filters-actions{
    grid-column:1/-1;margin:0;padding:12px 0;justify-content:flex-end;
  }
  /* Mobile: 2 rows.
     Row 1: amount, type, status (left) — actions (right)
     Row 2: name (left) — dates (right) */
  .payment-card{
    grid-template-columns:auto auto auto 1fr auto;
    grid-template-areas:
      "amount type status . actions"
      "user user user user dates";
    gap:6px 8px;padding:10px 12px;
  }
  .payment-card-amount{grid-area:amount;font-size:.95rem}
  .payment-card-type{grid-area:type;font-size:.78rem}
  .payment-card .pay-status{grid-area:status;font-size:.66rem;padding:2px 8px}
  .payment-card-user{grid-area:user;font-size:.85rem}
  .payment-card-dates{grid-area:dates;font-size:.75rem;justify-self:end}
  .payment-card-actions{grid-area:actions;justify-self:end}

  /* ===== Backups admin — panel layout, mobile tweaks ===== */
  body.page-admin_backups main > div{padding:12px !important;max-width:100% !important}
  body.page-admin_backups #backup-start-btn{padding:10px 18px !important;font-size:.85rem !important}
  /* Stack card vertically: head + meta on top, actions row below pinned right. */
  .backup-card{flex-direction:column;align-items:stretch;gap:6px}
  .backup-card-head{flex-wrap:wrap}
  .backup-card-actions{flex-direction:row;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:8px;width:100%}
  .backup-card-actions .btn,
  .backup-card-actions form{width:auto}
  .backup-card-actions .btn{width:auto;min-width:0;flex:0 0 auto}

  /* ===== Cron / Stats — give the .container some side padding on mobile ===== */
  body.page-admin_cron .container,
  body.page-admin_stats .container{padding-left:15px;padding-right:15px}
  body.page-admin_stats .stats-page{padding:20px 15px}
  body.page-admin_stats .stat-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  body.page-admin_stats .stat-card{padding:10px}
  body.page-admin_stats .stat-card .stat-num{font-size:1.25rem}
  body.page-admin_stats .stat-card .stat-label{font-size:.65rem}

  /* ===== Options admin — list (tabs) + detail (form) slide pattern ===== */
  body.page-admin_options .admin-list{
    padding:0 !important;background:var(--bg) !important;
  }
  body.page-admin_options .admin-list .ticket-row{padding:14px 16px;border-bottom:1px solid var(--line)}
  body.page-admin_options .admin-detail{padding:18px 14px}
  body.page-admin_options .options-head h1{font-size:1.2rem}
  body.page-admin_options .form-grid{grid-template-columns:1fr !important}

  /* ===== Email Templates admin — list + detail; no FAB (no real filter) ===== */
  body.page-admin_email_templates .admin-filters{display:none}
  body.page-admin_email_templates .admin-detail{padding:18px 14px}
  body.page-admin_email_templates #tpl-editor-host,
  body.page-admin_email_templates #hdr-editor-host,
  body.page-admin_email_templates #ftr-editor-host{min-height:160px}
  /* Center title/type and stack actions row centered on mobile */
  body.page-admin_email_templates .tpl-head{flex-direction:column;align-items:stretch;gap:10px}
  body.page-admin_email_templates .tpl-head-title{flex:0 0 auto;text-align:center}
  body.page-admin_email_templates .tpl-head-title h1{font-size:1.1rem;text-align:center}
  body.page-admin_email_templates .tpl-head-title p{text-align:center}
  body.page-admin_email_templates .tpl-head-actions{margin-left:0;justify-content:center;flex-wrap:wrap;gap:8px}

  /* ===== Emails admin — mobile detail layout =====
     Smaller title; status/meta + action buttons centered; safe scrolling. */
  body.page-admin_emails .admin-detail{
    -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  }
  body.page-admin_emails .admin-detail .email-preview{padding:12px;max-width:100%;word-break:break-word}
  body.page-admin_emails .admin-detail .email-preview img,
  body.page-admin_emails .admin-detail .email-preview table{max-width:100%}
  body.page-admin_emails .email-detail-title{
    font-size:1rem;text-align:center;margin:0 0 10px;line-height:1.3;word-break:break-word;
  }
  body.page-admin_emails .email-detail-meta{
    justify-content:center;text-align:center;flex-wrap:wrap;gap:6px;font-size:.78rem;
  }
  body.page-admin_emails .email-detail-actions{
    justify-content:center;flex-wrap:wrap;
  }

  /* ===== Support admin — center ticket head (title, meta row, action buttons) ===== */
  .support-admin-detail .ticket-head{text-align:center}
  .support-admin-detail .ticket-head h1{text-align:center}
  .support-admin-detail .ticket-head-meta{justify-content:center;flex-wrap:wrap}
  .support-admin-detail .ticket-head-actions{margin-left:0;justify-content:center;width:100%;flex-wrap:wrap}

  /* ===== Support admin — mobile slide filter (pinned to bottom, like Chats) =====
     Layout: search (top) → meta (count/page/sort) → pills (Process/Answered/Closed)
              → chip (optional User filter) → actions (Reset + ×, right-aligned).
     Form has NO horizontal padding; inner items get 12px inset via per-item
     margin so the actions-bar can fill 100% of the form width. Its inner
     padding (14px R) then puts buttons 14px from the panel's right edge. */
  #support-root .admin-filters{
    position:fixed;top:auto;bottom:0;right:-80vw;width:80vw;max-width:80vw;
    height:auto;max-height:90vh;z-index:9996;
    overflow-x:hidden;overflow-y:auto;
  }
  #support-root .admin-filters.is-open{right:0}
  #support-root .admin-filters form{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    grid-template-areas:
      "search search search"
      "meta   meta   meta"
      "pills  pills  pills"
      "chip   chip   chip"
      "actions actions actions";
    gap:10px;padding:14px 0 0;
    overflow:visible;flex:0 0 auto;min-width:0;
  }
  #support-root .admin-filters form input[type=hidden]{display:none}
  #support-root .admin-filters .filter-row{display:contents}
  #support-root .admin-filters .filter-search-wrap{grid-area:search;width:auto;margin:0 12px}
  #support-root .admin-filters .filter-meta{
    grid-area:meta;display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:6px;
    background:transparent;padding:0;height:auto;max-width:none;flex:none;
    width:auto;margin:0 12px;min-width:0;
  }
  #support-root .admin-filters .filter-meta .filter-count{
    width:auto;min-width:0;height:32px;line-height:30px;font-size:.85rem;border-radius:6px;text-align:center;padding:0 6px;
  }
  #support-root .admin-filters .filter-meta select[name=page],
  #support-root .admin-filters .filter-meta select[name=sort]{
    height:32px;width:auto;min-width:0;font-size:.82rem;border-radius:6px;padding:0 22px 0 8px;
  }
  #support-root .admin-filters .btn-pills,
  #support-root .admin-filters .btn-pills-tight{
    grid-area:pills;display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:6px;width:auto;margin:0 12px;min-width:0;
  }
  #support-root .admin-filters .btn-pill-sm{
    width:100%;height:32px;padding:0 4px;font-size:.78rem;justify-content:center;flex:0 0 auto;border-radius:6px;box-sizing:border-box;
  }
  #support-root .admin-filters .filter-chip{grid-area:chip;justify-self:start;margin:0 12px}
  #support-root .admin-filters .filters-reset{display:none}
  #support-root .admin-filters .admin-filters-actions{grid-area:actions;margin:0;width:auto}

  /* ===== Support user-mode — mobile slide filter =====
     Layout: search → meta (count/page) → new-ticket button → actions.
     User-side has no status pills or sort, just a "+ New ticket" CTA. */
  #support-root[data-mode="user"] .admin-filters form{
    grid-template-columns:repeat(2, minmax(0,1fr));
    grid-template-areas:
      "search search"
      "meta   meta"
      "newbtn newbtn"
      "actions actions";
  }
  #support-root[data-mode="user"] .admin-filters .filter-meta{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  #support-root[data-mode="user"] .admin-filters .support-new-btn{
    grid-area:newbtn;margin:0 12px;width:auto;height:36px;justify-content:center;
  }
  /* User-side support detail starts below the site header (no admin-bar) */
  body:not(:has(.admin-bar)) #support-root .admin-detail{top:60px}

  /* ===== Emails admin — mobile slide filter (same pattern as Support) =====
     Layout: search → meta (count/page/sort) → type+status (2 cols) → actions. */
  #emails-root .admin-filters{
    position:fixed;top:auto;bottom:0;right:-80vw;width:80vw;max-width:80vw;
    height:auto;max-height:90vh;z-index:9996;
    overflow-x:hidden;overflow-y:auto;
  }
  #emails-root .admin-filters.is-open{right:0}
  #emails-root .admin-filters form{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "search search"
      "meta   meta"
      "type   status"
      "actions actions";
    gap:10px;padding:14px 0 0;
    overflow:visible;flex:0 0 auto;min-width:0;
  }
  #emails-root .admin-filters form input[type=hidden]{display:none}
  #emails-root .admin-filters .filter-search-wrap{grid-area:search;width:auto;margin:0 12px}
  #emails-root .admin-filters .filter-meta{
    grid-area:meta;display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:6px;
    background:transparent;padding:0;height:auto;max-width:none;flex:none;
    width:auto;margin:0 12px;min-width:0;
  }
  #emails-root .admin-filters .filter-meta .filter-count{
    width:auto;min-width:0;height:32px;line-height:30px;font-size:.85rem;border-radius:6px;text-align:center;padding:0 6px;
  }
  #emails-root .admin-filters .filter-meta select[name=page],
  #emails-root .admin-filters .filter-meta select[name=sort]{
    height:32px;width:auto;min-width:0;font-size:.82rem;border-radius:6px;padding:0 22px 0 8px;
  }
  #emails-root .admin-filters select[name=type]{grid-area:type;margin-left:12px}
  #emails-root .admin-filters select[name=status]{grid-area:status;margin-right:12px}
  #emails-root .admin-filters select[name=type],
  #emails-root .admin-filters select[name=status]{
    width:auto;max-width:none;height:36px;font-size:.85rem;padding:0 12px;flex:0 0 auto;border-radius:6px;
  }
  #emails-root .admin-filters .filters-reset{display:none}
  #emails-root .admin-filters .admin-filters-actions{grid-area:actions;margin:0;width:auto}
}

/* Mobile font bumps — user-facing pages.
   Admin pages target their own classes (.admin-bar, .admin-bar-inner) so these
   rules don't bleed there. Base body bump excluded for page-admin* via .page-admin. */
@media(max-width:780px){
  body[class^="page-"]:not([class*="page-admin"]){font-size:16px}
  /* Card text on photo — ~1.4× larger so it's readable on phone */
  .card .ph .body h3{font-size:1.7rem !important;margin:0 0 6px;line-height:1.15}
  .card .ph .body .meta{font-size:1.05rem !important;line-height:1.3}
  .card .ph .body .meta.lang{font-size:.98rem !important;margin-top:4px}
  /* Card body (under photo) */
  .card h3{font-size:1.15rem}
  .card .meta{font-size:.92rem}
  .card .params{font-size:.88rem}
  /* Misc user-facing */
  .hero h1{font-size:2rem}
  .hero p{font-size:1.05rem}
  .section-head h2{font-size:1.8rem}
  .menu a{font-size:.88rem}
  /* Filters: bump text so labels/inputs are readable */
  .filters input,.filters select{font-size:1rem;height:38px}
  .f-age .age-trigger{font-size:1rem}
  .fake-mark{font-size:.95rem}
  .filters-count{font-size:1.05rem}
  .filters-toggle{font-size:1rem}
  .filters-toggle .filters-count-badge{font-size:.95rem}
  .ms .ms-toggle{font-size:1rem}
  .ms label{font-size:1rem}
  .filters .cs-trigger{font-size:1rem;height:38px}
  .age-grid button{font-size:1rem}
}
