:root{
  --bg:#0d0b1a;
  --bg2:#16122b;
  --panel:#1c1733;
  --panel2:#241d42;
  --border:#39305f;
  --text:#ece8fb;
  --muted:#a49bc9;
  --accent:#c26bff;
  --accent2:#ff6b8d;
  --accent-grad:linear-gradient(90deg,#c26bff,#ff6b8d);
  --ok:#3ddc97;
  --warn:#ffd166;
  --bad:#ff5c7a;
  --radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Segoe UI',Arial,'Helvetica Neue',sans-serif;
  background:radial-gradient(1200px 800px at 20% 0%,#24173f 0%,#12102a 45%,#0b0917 100%);
  color:var(--text);
  min-height:100vh;
  line-height:1.55;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1080px,92%);margin:0 auto}
.small{font-size:.8rem;color:var(--muted)}

/* Header */
.site-header{
  background:rgba(18,16,42,.85);
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:20;
  backdrop-filter:blur(6px);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px;flex-wrap:wrap}
.brand{
  font-size:1.35rem;font-weight:800;letter-spacing:.5px;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.nav a{color:var(--text);font-weight:600;font-size:.95rem}
.nav a:hover{color:var(--accent);text-decoration:none}
.nav .user{color:var(--muted);font-size:.9rem;white-space:nowrap}
.nav .cta{
  background:var(--accent-grad);color:#160f2e;padding:8px 14px;border-radius:999px;font-weight:700;
}
.nav .cta:hover{text-decoration:none;filter:brightness(1.08)}

/* Flash */
.flash{
  background:var(--panel);border:1px solid var(--border);border-radius:10px;
  padding:12px 16px;margin:16px 0;font-size:.95rem;
}

.main{padding:26px 0 50px}

/* Page heading */
.page-head{margin-bottom:20px}
.page-head h1{margin:0 0 4px;font-size:1.8rem}
.page-head p{color:var(--muted);margin:0}

/* Card grid */
.grid{
  display:grid;gap:20px;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
}
.card{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .12s ease, border-color .12s ease;
}
.card:hover{transform:translateY(-4px);border-color:var(--accent)}
.card .thumb{height:150px;background:var(--bg2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .thumb .noimg{color:#554c86;font-size:2rem}
.card .body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.card h3{margin:0 0 6px;font-size:1.05rem;line-height:1.3}
.card h3 a{color:var(--text)}
.card h3 a:hover{color:var(--accent);text-decoration:none}
.card .meta{color:var(--muted);font-size:.82rem;margin-bottom:10px}
.card .cat-pill{color:var(--accent)}
.card .price,.card .excerpt{color:var(--muted);font-size:.9rem;margin-bottom:10px}
.card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700}
.badge.pending{background:#3a3159;color:var(--warn)}
.badge.active{background:#1e3d33;color:var(--ok)}
.badge.rejected{background:#43233a;color:var(--bad)}
.badge.cat{background:#2d254e;color:var(--accent)}

/* Buttons */
.btn{
  display:inline-block;padding:10px 18px;border-radius:10px;border:1px solid var(--border);
  background:var(--panel2);color:var(--text);font-size:.95rem;font-weight:600;cursor:pointer;text-align:center;
}
.btn:hover{text-decoration:none;filter:brightness(1.1)}
.btn.primary{background:var(--accent-grad);color:#160f2e;border:none;font-weight:700}
.btn.ghost{background:transparent}
.btn.big{padding:14px 26px;font-size:1.05rem;width:100%}
.btn.danger{background:#3a1e2b;color:var(--bad);border-color:#5a2b3c}
.btn.sm{padding:6px 12px;font-size:.82rem}
.btn-row{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}

/* Forms */
.form-card{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--border);border-radius:var(--radius);
  padding:28px;max-width:520px;box-shadow:var(--shadow);margin:0 auto;
}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}
.form-row input[type=text],.form-row input[type=password],.form-row input[type=email],.form-row input[type=number],
.form-row select,.form-row textarea{
  width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--border);
  background:#0f0c22;color:var(--text);font-size:.95rem;
}
.form-row textarea{min-height:120px;resize:vertical}
.form-row input[type=file]{width:100%;padding:10px;border:1px dashed var(--border);border-radius:10px;color:var(--muted)}
.form-row .hint{font-size:.78rem;color:var(--muted);margin-top:5px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.error{background:#3a1e2b;border:1px solid #5a2b3c;color:var(--bad);border-radius:10px;padding:12px 16px;margin-bottom:16px}
.ok{background:#1e3d33;border:1px solid #22583f;color:var(--ok);border-radius:10px;padding:12px 16px;margin-bottom:16px}

/* Filters */
.filters{display:flex;gap:12px;margin:0 0 22px;flex-wrap:wrap}
.filters select,.filters input{
  padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:#0f0c22;color:var(--text);font-size:.9rem;
}
.filters input[type=text]{min-width:200px;flex:1}
.filter-btn{padding:10px 18px}

/* Pagination */
.pagination{display:flex;gap:8px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.pagination a,.pagination span{padding:8px 14px;border-radius:8px;border:1px solid var(--border);color:var(--text)}
.pagination .cur{background:var(--accent-grad);color:#160f2e;font-weight:700;border:none}
.pagination a:hover{text-decoration:none;border-color:var(--accent)}

/* Single ad */
.ad-view{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.ad-view .img-main{max-height:360px;width:100%;object-fit:contain;background:var(--bg2);border-radius:10px;margin-bottom:18px}
.ad-view h1{margin:0 0 8px;font-size:1.8rem}
.ad-view .meta{color:var(--muted);margin-bottom:20px;display:flex;gap:18px;flex-wrap:wrap}
.ad-view .body-text{white-space:pre-wrap;margin-bottom:22px;color:#dcd6f5}
.contact-box{background:#0f0c22;border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-bottom:14px}
.contact-box strong{color:var(--accent)}

/* Table (admin/myads) */
.table-wrap{overflow-x:auto;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:var(--radius);padding:6px}
table{width:100%;border-collapse:collapse;min-width:640px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);font-size:.9rem}
th{color:var(--muted);font-weight:700}
td .trunc{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Gate */
.gate-page{align-items:center;justify-content:center;display:flex;padding:40px 0;min-height:100vh}
.gate-wrap{display:flex;justify-content:center}
.gate-card{max-width:460px;text-align:center;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:18px;padding:36px;box-shadow:var(--shadow)}
.gate-card h1{margin:0 0 14px;font-size:1.6rem;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.gate-lead{color:var(--muted);margin-bottom:24px}
.gate-card form{margin-bottom:12px}

.site-footer{border-top:1px solid var(--border);padding:24px 0;text-align:center;color:var(--muted)}
.site-footer p{margin:4px 0}
.empty{text-align:center;color:var(--muted);padding:60px 0}
.empty h3{color:var(--text);margin-bottom:8px}

@media(max-width:560px){.form-grid{grid-template-columns:1fr}.header-inner{flex-direction:column;align-items:flex-start}}

/* ---------- Расширенные поля анкеты, услуги, прайс ---------- */

.form-section-title{
  margin:26px 0 12px;font-size:1.1rem;font-weight:800;color:var(--accent);
  padding-bottom:6px;border-bottom:1px solid var(--border);letter-spacing:.3px;
}

/* Выбор услуг */
.hint{font-size:.78rem;color:var(--muted)}
.services-box{
  border:1px solid var(--border);border-radius:12px;background:#0f0c22;
  padding:14px 16px;margin-bottom:8px;max-height:320px;overflow-y:auto;
}
.service-group{margin-bottom:14px}
.service-group:last-child{margin-bottom:2px}
.service-group-title{
  font-weight:700;color:var(--text);font-size:.92rem;margin-bottom:8px;
  display:flex;align-items:center;gap:8px;
}
.service-group-title::before{content:'✦';color:var(--accent);font-size:.8rem}
.service-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px}
.service-item{
  display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;
  border:1px solid transparent;cursor:pointer;font-size:.88rem;color:var(--text);
  transition:background .12s,border-color .12s;
}
.service-item:hover{background:rgba(194,107,255,.08);border-color:var(--border)}
.service-item input{accent-color:var(--accent);width:16px;height:16px;flex:none}
.service-name{flex:1}
.service-item input:checked ~ .service-name{color:var(--accent);font-weight:600}
.service-extra{
  flex:none;font-size:.7rem;font-weight:700;color:var(--warn);background:#3a3159;
  padding:2px 7px;border-radius:999px;white-space:nowrap;
}

/* Блок услуг на странице объявления */
.services-display{margin-bottom:12px}
.service-tags{display:flex;flex-wrap:wrap;gap:8px}
.service-tag{
  display:inline-flex;align-items:center;gap:6px;background:#0f0c22;border:1px solid var(--border);
  border-radius:999px;padding:5px 11px;font-size:.8rem;color:var(--text);
}
.service-tag .extra{color:var(--warn);font-weight:700;font-size:.72rem}
.service-tag.sm{font-size:.72rem;padding:3px 8px}
.service-tag.more{color:var(--muted)}

/* Прайс */
.price-editor{margin-bottom:6px}
.price-table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:12px;background:#0f0c22;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.price-table th,.price-table td{border:1px solid var(--border);padding:8px 10px;text-align:center;font-size:.9rem}
.price-table thead th{background:rgba(194,107,255,.09);color:var(--text);font-weight:700;font-size:.8rem}
.price-table .rowlabel{background:rgba(255,255,255,.03);text-align:left;font-weight:700;white-space:nowrap;color:var(--muted);font-size:.85rem}
.price-table input{
  width:100%;min-width:70px;padding:8px 9px;border-radius:8px;border:1px solid var(--border);
  background:#0f0c22;color:var(--text);font-size:.9rem;text-align:center;
}
.price-table input:focus{outline:none;border-color:var(--accent)}
.price-note{color:var(--muted);font-size:.8rem;margin:4px 0}

/* Анкета */
.profile-block{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 18px;
  background:#0f0c22;border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px;
}
.profile-item{display:flex;flex-direction:column;gap:2px}
.profile-item .p-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}
.profile-item .p-value{font-size:.95rem;color:var(--text)}

/* Заголовок секции на странице объявления */
.section-title{
  margin:22px 0 12px;font-size:1.05rem;font-weight:800;color:var(--accent);
  padding-bottom:6px;border-bottom:1px solid var(--border);
}

/* Услуги на карточках */
.card-services{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}

/* Менеджер фото */
.photo-uploader{margin-bottom:8px}
.photo-previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.existing-photos{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.photo-preview{
  position:relative;width:104px;cursor:pointer;border:2px solid transparent;border-radius:10px;
  overflow:hidden;background:#0f0c22;
}
.photo-preview img{width:104px;height:104px;object-fit:cover;display:block}
.photo-preview .pp-cap{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);color:#fff;font-size:.68rem;padding:2px 4px;text-align:center}
.photo-preview .pp-del{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.65);color:#fff;font-size:.6rem;padding:2px 5px;border-radius:6px;display:flex;align-items:center;gap:4px}
.photo-preview.is-main{border-color:var(--accent);box-shadow:0 0 0 2px rgba(194,107,255,.4)}
.photo-preview.is-main .pp-cap{background:var(--accent);color:#160f2e;font-weight:700}

/* Видео */
.current-video{background:#0f0c22;border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:.9rem;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.video-block{margin:14px 0}
.video-block video{width:100%;max-height:420px;border-radius:12px;background:#000;border:1px solid var(--border)}

/* Галерея на странице объявления */
.photo-gallery{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.gallery-item{width:120px;height:120px;border-radius:10px;overflow:hidden;border:1px solid var(--border)}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .12s}
.gallery-item:hover img{transform:scale(1.06)}

/* Бейдж медиа на карточке */
.card .thumb{position:relative}
.thumb-badge{
  position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;font-size:.7rem;
  padding:3px 8px;border-radius:999px;font-weight:700;pointer-events:none;
}

@media(max-width:560px){
  .service-items{grid-template-columns:1fr}
  .profile-block{grid-template-columns:1fr}
  .price-table{min-width:420px}
  .price-editor{overflow-x:auto}
}
