:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
--bg:#f5f3fb;--card:#fff;--ink:#1e1b3a;--mut:#6b6887;--pri:#4b32d6;--acc:#ff4f78;--line:#e3dff2;--ok:#1f9d6b}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14122a;--card:#1f1c3c;--ink:#f1eefc;--mut:#a8a4c8;--pri:#9a89ff;--acc:#ff7a98;--line:#34305c;--ok:#4fd1a0}}
:root[data-theme="dark"]{--bg:#14122a;--card:#1f1c3c;--ink:#f1eefc;--mut:#a8a4c8;--pri:#9a89ff;--acc:#ff7a98;--line:#34305c;--ok:#4fd1a0}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*:before,*:after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Trebuchet MS","Segoe UI",system-ui,sans-serif}
h1,h2,h3{font-family:Georgia,"Palatino Linotype",serif;margin:0}
button,select,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;border-radius:10px;padding:.55rem .9rem;background:var(--pri);color:#fff}
button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.like{background:var(--acc)}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;flex-wrap:wrap}
header h1{font-size:1.5rem;color:var(--pri)}
nav{display:flex;gap:.3rem;flex:1;flex-wrap:wrap}
nav button{background:transparent;color:var(--mut);position:relative}
nav button[aria-current=page]{background:var(--pri);color:#fff}
.badge{background:var(--acc);color:#fff;border-radius:99px;font-size:.7rem;padding:0 .4rem;margin-left:.3rem}
main{max-width:1000px;margin:0 auto;padding:1rem}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8rem;margin-bottom:1rem}
.filters label{display:flex;flex-direction:column;font-size:.85rem;color:var(--mut);gap:.2rem}
select,input[type=text],input[type=number],textarea{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.av{height:130px;display:grid;place-items:center;font:700 3rem Georgia,serif;color:#fff;position:relative}
.on{position:absolute;top:10px;right:10px;font-size:.75rem;background:rgba(0,0,0,.35);padding:.1rem .5rem;border-radius:99px}
.body{padding:.8rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.tags{display:flex;gap:.3rem;flex-wrap:wrap}
.tag{font-size:.75rem;border:1px solid var(--line);border-radius:99px;padding:0 .5rem;color:var(--mut)}
.ver{color:var(--ok);font-size:.8rem}
.row{display:flex;gap:.4rem;margin-top:auto}
.row button{flex:1}
.chat{display:grid;grid-template-columns:260px 1fr;gap:1rem;min-height:60vh}
@media(max-width:700px){.chat{grid-template-columns:1fr}}
.list,.conv{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.6rem}
.item{display:flex;gap:.6rem;align-items:center;padding:.5rem;border-radius:10px;width:100%;background:transparent;color:var(--ink);text-align:left}
.item[aria-current=true]{background:var(--bg)}
.mini{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;flex:none}
.msgs{display:flex;flex-direction:column;gap:.4rem;height:48vh;overflow-y:auto;padding:.5rem}
.m{max-width:78%;padding:.45rem .7rem;border-radius:14px;background:var(--bg);align-self:flex-start;overflow-wrap:anywhere}
.m.me{background:var(--pri);color:#fff;align-self:flex-end}
.m.gift{font-size:1.8rem;background:transparent}
.send{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}
.send input{flex:1;min-width:140px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;max-width:560px;display:grid;gap:.7rem}
.panel label{display:grid;gap:.2rem;color:var(--mut);font-size:.9rem}
.empty{color:var(--mut);padding:2rem;text-align:center}
#toast{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.6rem 1rem;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:9}
#toast.show{opacity:1}
.tips li{margin:.3rem 0}
.sys{align-self:center;font-size:.8rem;color:var(--mut);background:var(--card);border:1px solid var(--line);border-radius:99px;padding:.1rem .7rem}
.tm{display:block;font-size:.7rem;opacity:.75;text-align:right}.tk.rd{color:#5ad1ff}
.call{position:fixed;inset:0;z-index:20;background:linear-gradient(160deg,#1e1b3a,#4b32d6);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:1rem;text-align:center}
.call .big{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;font:700 3rem Georgia,serif}
.call video{position:absolute;right:1rem;top:calc(1rem + env(safe-area-inset-top,0px));width:110px;border-radius:12px;background:#000}
.call .ctl{display:flex;gap:1rem;margin-top:1rem}.call .ctl button{width:60px;height:60px;border-radius:50%;font-size:1.4rem;background:rgba(255,255,255,.18)}
.call .ctl button[aria-pressed=true]{background:#fff;color:#1e1b3a}.call .ctl .end{background:#e5384f}
button.rec{background:#e5384f;color:#fff}
.price{font:700 1.5rem Georgia,serif;color:var(--pri)}.card.prem{border-color:var(--acc)}
button:disabled{opacity:.5;cursor:default}
.ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;margin-top:.3rem}
.ph>div{aspect-ratio:3/4;border:1px dashed var(--line);border-radius:10px;overflow:hidden;position:relative;display:grid;place-items:center}
.ph img{width:100%;height:100%;object-fit:cover}
.ph .ac{position:absolute;bottom:4px;left:4px;right:4px;display:flex;gap:4px}
.ph .ac button{flex:1;padding:.2rem;font-size:.75rem;background:rgba(0,0,0,.6);color:#fff;border:0}
button,.call .ctl button{background:linear-gradient(135deg,#f9e08b,#d4a017)!important;color:#000!important;border:1px solid #b8860b!important;font-weight:600}
a.ghost{background:linear-gradient(135deg,#f9e08b,#d4a017)!important;color:#000!important;border:1px solid #b8860b!important;font-weight:600}
nav button[aria-current=page],.item[aria-current=true]{box-shadow:inset 0 0 0 2px #000}
button.rec,.call .ctl button[aria-pressed=true]{box-shadow:0 0 0 3px #e5384f}
.item small{color:#000!important}
.sl{position:relative;margin-bottom:1rem}
.sl-t{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.2rem}
.sl-t::-webkit-scrollbar{display:none}
.sld{flex:0 0 min(240px,70%);scroll-snap-align:start;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:4/5;cursor:pointer;display:grid;place-items:center;color:#fff;font:700 4rem Georgia,serif}
.sld img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sld .cap{position:absolute;left:0;right:0;bottom:0;padding:.7rem;background:linear-gradient(transparent,rgba(0,0,0,.78));font:600 1rem "Trebuchet MS",sans-serif;text-align:left}
.sld .cap small{display:block;font-weight:400;opacity:.9}
.sl-b{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;padding:0;font-size:1.4rem;line-height:1}
.sl-b.l{left:4px}.sl-b.r{right:4px}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:30;padding:1rem;overflow:auto}
.overlay .panel{width:min(480px,100%)}
.av img{width:100%;height:100%;object-fit:cover}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9a98ad;margin-right:.3rem}.dot.on{background:var(--ok)}
.sub{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl td,.tbl th{padding:.4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.rowf{display:flex;gap:.4rem;flex-wrap:wrap;align-items:end}

/* ===== TOPESCORTEGIRLS - DISCOVER CARDS ===== */
.grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.grid .card{
  background:#050403;
  color:#fff;
  border:1px solid rgba(212,175,55,.38);
  border-radius:18px;
  overflow:hidden;
  min-width:0;
}

.grid .card .av{
  height:auto;
  aspect-ratio:4/5;
  background:#111;
  overflow:hidden;
  position:relative;
}

.grid .card .av img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.grid .card .on{
  top:12px;
  right:12px;
  background:rgba(25,22,16,.65);
  color:#fff;
  font:700 .85rem Georgia,serif;
  padding:3px 10px;
  border-radius:99px;
}

.grid .card .body{
  padding:14px 16px 16px;
  gap:7px;
  background:#050403;
}

.grid .card .body h3{
  margin:0;
  color:#e8c65a;
  font:700 1.25rem Georgia,serif;
}

.grid .card .body > div:not(.tags):not(.row){
  color:#fff;
  font-size:.95rem;
}

.grid .card .tags{
  display:none;
}

.grid .card .row{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr;
  gap:7px;
  margin-top:12px;
}

.grid .card .row button{
  min-height:48px;
  padding:8px 6px;
  border-radius:12px;
  border:1px solid #d4af37;
  background:linear-gradient(135deg,#f4d978,#c99d31);
  color:#090806;
  font-weight:800;
}

@media(max-width:900px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .grid{grid-template-columns:1fr}
}

/* ===== TOPESCORTEGIRLS - DESKTOP WIDTH ===== */
main{
  width:min(94vw,1900px);
  max-width:1900px;
  margin:0 auto;
  padding:1rem;
}

/* ===== TOPESCORTEGIRLS - FICHE ANNONCE ===== */

.adp-page{
  width:100%;
  max-width:1800px;
  margin:0 auto;
  padding:24px 20px 50px;
  color:#fff;
}

.adp-back{
  margin:0 0 18px;
  border:1px solid #d4af37;
  background:linear-gradient(135deg,#f2d675,#bd8f28);
  color:#090806;
  border-radius:12px;
  padding:12px 20px;
  font-weight:800;
}

.adp-layout{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(320px,1fr);
  gap:32px;
  align-items:start;
}

.adp-left{
  min-width:0;
}

.adp-gallery{
  width:100%;
}

.adp-main-photo{
  width:100%;
  height:570px;
  border:1px solid rgba(212,175,55,.7);
  border-radius:18px;
  overflow:hidden;
  background:#050505;
}

.adp-main-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  background:#050505;
}

.adp-thumbs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}

.adp-thumbs img{
  width:100%;
  height:145px;
  object-fit:cover;
  display:block;
  background:#050505;
  border:1px solid rgba(212,175,55,.6);
  border-radius:15px;
}

.adp-card{
  background:linear-gradient(145deg,#111,#070707);
  border:1px solid rgba(212,175,55,.8);
  border-radius:22px;
  padding:28px;
  color:#fff;
}

.adp-head{
  display:block;
  padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,.22);
}

.adp-head h1{
  margin:0 0 8px;
  color:#e6c557;
  font-family:Georgia,serif;
  font-size:2rem;
}

.adp-location{
  margin:0;
  color:#fff;
  font-size:1.05rem;
}

.adp-verified{
  display:inline-block;
  margin-top:14px;
  padding:5px 10px;
  border:1px solid #d4af37;
  border-radius:99px;
  color:#e6c557;
  font-size:.82rem;
  font-weight:800;
}

.adp-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:18px 0;
}

.adp-tags span{
  padding:4px 11px;
  border:1px solid rgba(212,175,55,.7);
  border-radius:99px;
  color:#eee;
  background:#15130e;
  font-size:.86rem;
}

.adp-section{
  margin-top:20px;
}

.adp-section h2{
  margin:0 0 15px;
  color:#e6c557;
  font-family:Georgia,serif;
  font-size:1.7rem;
}

.adp-description{
  margin:0;
  color:#f3f3f3;
  line-height:1.7;
  white-space:pre-line;
}

.adp-contact{
  display:grid;
  gap:14px;
  margin-top:28px;
}

.adp-contact-btn,
.adp-contact a,
.adp-contact button{
  width:100%;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  border:1px solid #d4af37;
  border-radius:14px;
  background:linear-gradient(135deg,#f3d878,#bd8e27);
  color:#080706;
  text-decoration:none;
  font-weight:800;
  font-size:1.05rem;
}

.adp-contact a:nth-child(2){
  background:#080808;
  color:#56b9ec;
  border-color:#56b9ec;
}

.adp-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:26px;
}

.adp-actions button{
  min-height:55px;
  border:1px solid #d4af37;
  border-radius:13px;
  background:linear-gradient(135deg,#f3d878,#bd8e27);
  color:#080706;
  font-weight:800;
}

/* Présentation sous la galerie sur grand écran */
@media(min-width:901px){
  .adp-card{
    position:sticky;
    top:90px;
  }
}

@media(max-width:900px){
  .adp-page{
    padding:15px 12px 35px;
  }

  .adp-layout{
    grid-template-columns:1fr;
    gap:18px;
  }

  .adp-main-photo{
    height:480px;
  }

  .adp-card{
    padding:20px;
  }
}

@media(max-width:560px){
  .adp-main-photo{
    height:430px;
  }

  .adp-thumbs{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }

  .adp-thumbs img{
    height:105px;
  }

  .adp-actions{
    grid-template-columns:1fr;
  }

  .adp-head h1{
    font-size:1.65rem;
  }
}
/* ===== TOPESCORTEGIRLS - PROFIL STRUCTURE FINALE ===== */

.adp-info{
  position:static;
  background:linear-gradient(145deg,#100f0d,#050505);
  border:1px solid rgba(212,175,55,.75);
  border-radius:20px;
  padding:28px;
}

.adp-info-title{
  margin:0;
  color:#e6c557;
  font-family:Georgia,serif;
  font-size:1.8rem;
  line-height:1.15;
}

.adp-price{
  margin-top:18px;
  color:#e6c557;
  font-family:Georgia,serif;
  font-size:2.2rem;
  font-weight:700;
}

.adp-info-divider{
  height:1px;
  margin:22px 0;
  background:rgba(212,175,55,.35);
}

.adp-info-list{
  display:grid;
  gap:18px;
}

.adp-info-row{
  display:grid;
  gap:3px;
  color:#aaa;
  font-size:.95rem;
}

.adp-info-row strong{
  color:#fff;
  font-size:1.05rem;
}

.adp-info-verified{
  color:#e6c557 !important;
}

.adp-info .adp-contact{
  margin-top:0;
}

.adp-info .adp-telegram{
  background:#080808;
  border-color:#56b9ec;
  color:#56b9ec;
}

.adp-presentation{
  margin-top:30px;
  padding:30px 32px;
  background:linear-gradient(145deg,#100f0d,#050505);
  border:1px solid rgba(212,175,55,.65);
  border-radius:20px;
  color:#fff;
}

.adp-presentation-head h1{
  margin:0 0 5px;
  color:#e6c557;
  font-family:Georgia,serif;
  font-size:2rem;
}

.adp-presentation .adp-location{
  margin:0 0 10px;
  color:#fff;
}

.adp-presentation .adp-tags{
  margin:10px 0 0;
}

.adp-presentation .adp-section{
  margin-top:10px;
}

.adp-presentation .adp-section h2{
  margin-bottom:18px;
}

.adp-presentation .adp-description{
  max-width:none;
  font-size:1rem;
  line-height:1.65;
}

.adp-presentation .adp-actions{
  margin-top:25px;
}

/* annule le sticky de l'ancienne colonne */
@media(min-width:901px){
  .adp-card.adp-info{
    position:static;
    top:auto;
  }
}

@media(max-width:900px){
  .adp-info{
    padding:22px;
  }

  .adp-presentation{
    margin-top:18px;
    padding:22px;
  }
}

@media(max-width:560px){
  .adp-info-title{
    font-size:1.5rem;
  }

  .adp-price{
    font-size:1.8rem;
  }

  .adp-presentation{
    padding:18px;
  }

  .adp-presentation-head h1{
    font-size:1.65rem;
  }
}

/* TopEscorteGirls — Informations annonce compactes */
.adp-info .adp-info-list .adp-info-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid rgba(212,175,55,.18);
}

.adp-info .adp-info-row span {
  display: inline !important;
  flex: 0 0 auto;
  color: #bdbdbd;
  margin: 0 !important;
}

.adp-info .adp-info-row strong {
  display: inline !important;
  flex: 1 1 auto;
  min-width: 0;
  text-align: right !important;
  margin: 0 !important;
  overflow-wrap: anywhere;
  color: #fff;
}

.adp-info .adp-info-row strong.adp-info-verified {
  color: #D4AF37;
}

@media (max-width: 480px) {
  .adp-info .adp-info-list .adp-info-row {
    gap: 8px !important;
    padding: 10px 0 !important;
  }
}
