:root{
  --bg:#f4f7fb; --surface:#fff; --surface-2:#f8fafc; --text:#0b1730; --muted:#6d7a91; --line:#e6ebf2;
  --blue:#1677ff; --blue-2:#0d63e8; --green:#16b66c; --violet:#8a5cf6; --orange:#ff8a34; --red:#ff4d67;
  --shadow:0 12px 32px rgba(20,48,90,.08); --shadow-sm:0 6px 18px rgba(20,48,90,.06);
  --radius:24px; --radius-sm:16px; --container:1420px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:linear-gradient(180deg,#f8fbff 0,#f4f7fb 260px,#f4f7fb 100%);color:var(--text)}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%} button,input,textarea,select{font:inherit}
.container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(230,235,242,.9)}
.header__inner{height:76px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:12px;min-width:210px}.brand__mark{width:42px;height:42px;border-radius:13px;background:#0b1730;color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:.5px;box-shadow:0 8px 18px rgba(11,23,48,.18)}
.brand__title{font-weight:800;font-size:16px;letter-spacing:.1px}.brand__sub{font-size:12px;color:var(--muted);margin-top:2px}.nav{display:flex;align-items:center;gap:6px}.nav a{padding:10px 14px;border-radius:12px;font-size:14px;color:#314059}.nav a:hover,.nav a.active{background:#edf5ff;color:var(--blue);font-weight:700}
.header__search:before{content:'⌕';position:absolute;left:15px;top:10px;font-size:22px;color:#7d8ba1}.header__actions{display:flex;align-items:center;gap:10px}.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer}.profile-chip{height:44px;padding:0 14px 0 8px;display:flex;align-items:center;gap:9px;border-radius:14px;background:#fff;border:1px solid var(--line);font-weight:700}.avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}
.page{padding:24px 0 64px}.page-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:8px 0 20px}.page-title h1{font-size:36px;line-height:1.05;margin:0;letter-spacing:-.8px}.page-title p{margin:7px 0 0;color:var(--muted)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.9fr);gap:20px}.hero-card{position:relative;min-height:520px;border-radius:28px;overflow:hidden;background:#17253c;box-shadow:var(--shadow)}.hero-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.hero-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,34,.05) 25%,rgba(6,18,34,.28) 55%,rgba(6,18,34,.88) 100%)}.hero-content{position:absolute;left:32px;right:32px;bottom:30px;z-index:2;color:#fff}.badge{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(10px);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.hero-content h1{font-size:42px;line-height:1.05;letter-spacing:-1.2px;max-width:760px;margin:12px 0 12px}.hero-content p{max-width:650px;margin:0 0 20px;color:rgba(255,255,255,.86);font-size:16px;line-height:1.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:14px;height:46px;padding:0 18px;font-weight:800;cursor:pointer}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-2));box-shadow:0 10px 22px rgba(22,119,255,.25)}.btn-light{background:#fff;color:var(--text);border:1px solid var(--line)}.btn-soft{background:#eef5ff;color:var(--blue)}
.side-stack{display:grid;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm)}.panel-pad{padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-head h2,.section-head h2{margin:0;font-size:22px;letter-spacing:-.4px}.panel-head a,.section-head a{font-size:13px;color:var(--blue);font-weight:800}.weather{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.weather__icon{font-size:46px}.weather__temp{font-size:40px;font-weight:900;line-height:1}.weather__city{font-weight:800;margin-top:3px}.weather__meta{display:flex;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.mini-news{display:grid;gap:13px}.mini-news__item{display:grid;grid-template-columns:104px 1fr;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}.mini-news__item:last-child{padding-bottom:0;border-bottom:0}.mini-news__item img{width:104px;height:74px;object-fit:cover;border-radius:13px}.mini-news__item h3{font-size:14px;line-height:1.3;margin:3px 0 8px}.meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px}.tag{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#edf5ff;color:var(--blue);font-size:11px;font-weight:800}.tag.green{background:#eaf9f1;color:#129255}.tag.violet{background:#f1ecff;color:#7348e9}.tag.orange{background:#fff1e6;color:#e56d16}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.quick-card{display:flex;align-items:center;gap:14px;padding:18px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.quick-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:21px;background:#edf5ff}.quick-card:nth-child(2) .quick-icon{background:#eaf9f1}.quick-card:nth-child(3) .quick-icon{background:#f2edff}.quick-card:nth-child(4) .quick-icon{background:#e9f9ff}.quick-card strong{display:block}.quick-card span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.section{margin-top:30px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;color:#58667b;padding:9px 13px;border-radius:999px;font-size:13px;cursor:pointer}.chip.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:800}
.city-banner{margin-top:22px;min-height:150px;border-radius:24px;overflow:hidden;position:relative;background:#12253d}.city-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.city-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,24,40,.88),rgba(10,24,40,.35) 56%,rgba(10,24,40,.15))}.city-banner__content{position:relative;z-index:2;color:#fff;padding:28px;display:flex;align-items:end;justify-content:space-between;min-height:150px}.city-banner h2{font-size:30px;margin:0 0 5px}.city-banner p{margin:0;color:rgba(255,255,255,.78)}
.list-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px}.news-list{display:grid;gap:14px}.news-list-item{background:#fff;border:1px solid var(--line);border-radius:20px;display:grid;grid-template-columns:240px 1fr;overflow:hidden}.news-list-item img{width:240px;height:168px;object-fit:cover}.news-list-item__body{padding:18px}.news-list-item h2{font-size:21px;margin:6px 0 8px;line-height:1.25}.news-list-item p{margin:0 0 13px;color:var(--muted);line-height:1.5;font-size:14px}
.article{max-width:980px;margin:0 auto}.article__top{background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden}.article__hero{aspect-ratio:16/8.5}.article__hero img{width:100%;height:100%;object-fit:cover}.article__body{padding:32px}.article h1{font-size:42px;line-height:1.08;letter-spacing:-1px;margin:12px 0 16px}.article__lead{font-size:19px;line-height:1.6;color:#42506a}.article__text{font-size:17px;line-height:1.8;color:#2b3850}.quote{margin:24px 0;padding:22px 24px;border-left:4px solid var(--blue);background:#f1f6ff;border-radius:0 16px 16px 0;color:#31405b;font-size:17px;line-height:1.6}
.market-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:var(--shadow-sm)}.market-hero__text{padding:12px 8px}.market-hero h1{font-size:38px;margin:0 0 12px}.market-hero p{color:var(--muted);max-width:620px;line-height:1.55}.market-hero__img{border-radius:20px;overflow:hidden;min-height:220px}.market-hero__img img{width:100%;height:100%;object-fit:cover}.market-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.listing-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.2s}.listing-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.listing-card__img{aspect-ratio:4/3;background:#edf1f6;overflow:hidden}.listing-card__img img{width:100%;height:100%;object-fit:cover}.listing-card__body{padding:14px}.price{font-size:20px;font-weight:900;margin-bottom:5px}.listing-card h3{font-size:15px;margin:0 0 8px}.listing-card .meta{font-size:11px}
.listing-detail{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:24px}.gallery{background:#fff;border:1px solid var(--line);border-radius:26px;padding:16px}.gallery-main{aspect-ratio:4/3;border-radius:19px;overflow:hidden;background:#eef2f6}.gallery-main img{width:100%;height:100%;object-fit:cover}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:2px solid transparent}.thumbs img:first-child{border-color:var(--blue)}.detail-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:24px;height:max-content;position:sticky;top:100px}.detail-card h1{font-size:30px;margin:8px 0}.detail-card .price{font-size:34px}.specs{display:grid;gap:0;margin:22px 0;border:1px solid var(--line);border-radius:16px;overflow:hidden}.spec-row{display:flex;justify-content:space-between;gap:20px;padding:13px 14px;border-bottom:1px solid var(--line)}.spec-row:last-child{border-bottom:0}.spec-row span:first-child{color:var(--muted)}.seller{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.seller .avatar{width:46px;height:46px}.seller__actions{display:flex;gap:10px;margin-top:16px}.seller__actions .btn{flex:1}
.form-wrap{max-width:820px;margin:0 auto}.form-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px}.photo-upload{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.upload-box{aspect-ratio:1;border:1.5px dashed #cad4e2;background:#f8fafc;border-radius:16px;display:grid;place-items:center;text-align:center;color:var(--blue);font-weight:800;font-size:13px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:#fbfcfe;border-radius:13px;padding:13px 14px;outline:none}.field textarea{min-height:120px;resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.profile-grid{display:grid;grid-template-columns:320px 1fr;gap:22px}.profile-card,.profile-content{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px}.profile-user{display:flex;align-items:center;gap:14px}.profile-user .avatar{width:72px;height:72px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.stat{background:#f7f9fc;border-radius:14px;padding:14px 8px;text-align:center}.stat strong{display:block;font-size:22px}.stat span{font-size:11px;color:var(--muted)}.menu-list{display:grid;gap:8px}.menu-list a{padding:14px 15px;border-radius:14px;background:#f8fafc;display:flex;justify-content:space-between;font-weight:700;font-size:14px}.profile-content h2{margin-top:0}.empty-state{min-height:330px;border:1px dashed #d6deea;border-radius:18px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:40px}
.footer{border-top:1px solid var(--line);background:#fff;padding:28px 0 36px;color:var(--muted);font-size:13px}.footer__inner{display:flex;justify-content:space-between;gap:20px;align-items:center}.mobile-nav{display:none}
@media(max-width:1100px){.container{width:min(100% - 32px,1100px)}.nav{display:none}.hero-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.market-hero{grid-template-columns:1fr 1fr}.profile-grid{grid-template-columns:1fr}.profile-card{max-width:none}.list-layout{grid-template-columns:1fr}.list-layout>aside{display:none}}
@media(max-width:720px){body{padding-bottom:74px}.container{width:min(100% - 24px,680px)}.header__inner{height:64px;gap:12px}.brand{min-width:auto}.brand__mark{width:38px;height:38px}.brand__text{display:none}.profile-chip{display:none}.header__actions{margin-left:auto}.page{padding:16px 0 30px}.page-title{align-items:start}.page-title h1{font-size:30px}.hero-card{min-height:470px;border-radius:22px}.hero-content{left:20px;right:20px;bottom:20px}.hero-content h1{font-size:31px}.hero-content p{font-size:14px}.side-stack{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr;gap:10px}.quick-card{padding:14px;align-items:flex-start}.quick-icon{width:40px;height:40px}.section{margin-top:24px}.section-head{align-items:start}.section-head h2{font-size:24px}.chips{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.city-banner__content{padding:20px;align-items:start;flex-direction:column;justify-content:flex-end}.city-banner h2{font-size:24px}.list-layout{display:block}.news-list-item{grid-template-columns:112px 1fr;border-radius:16px}.news-list-item img{width:112px;height:118px}.news-list-item__body{padding:12px}.news-list-item h2{font-size:15px}.news-list-item p{display:none}.article__top{border-radius:20px}.article__body{padding:20px}.article h1{font-size:30px}.article__lead{font-size:17px}.article__text{font-size:16px}.market-hero{grid-template-columns:1fr;padding:16px}.market-hero__img{min-height:180px}.market-hero h1{font-size:30px}.listing-card__body{padding:10px}.price{font-size:17px}.listing-card h3{font-size:13px}.listing-detail{grid-template-columns:1fr}.detail-card{position:static}.gallery{padding:10px}.detail-card{padding:20px}.detail-card h1{font-size:26px}.detail-card .price{font-size:30px}.field-grid{grid-template-columns:1fr}.form-card{padding:18px}.photo-upload{grid-template-columns:repeat(3,1fr)}.profile-grid{display:block}.profile-content{margin-top:14px}.mobile-nav{display:grid;position:fixed;z-index:70;left:10px;right:10px;bottom:10px;height:62px;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 34px rgba(20,48,90,.18)}.mobile-nav a{display:grid;place-items:center;font-size:10px;color:#6d7a91}.mobile-nav a.active{color:var(--blue);font-weight:800}.mobile-nav a.add{align-self:center;justify-self:center;width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;font-size:24px}.footer{display:none}}
@media(max-width:420px){.quick-grid{grid-template-columns:1fr 1fr}.hero-card{min-height:440px}.hero-content h1{font-size:28px}.mini-news__item{grid-template-columns:90px 1fr}.mini-news__item img{width:90px;height:68px}.photo-upload{grid-template-columns:repeat(2,1fr)}}

/* v3: simple hand-drawn line icon system — no emoji/icon-font glyphs */
.icon,.search-icon,.meta-icon,.nav-icon,.nav-add-icon,.upload-icon{display:block;width:20px;height:20px;flex:0 0 auto;fill:none;color:currentColor}
.icon-btn .icon{width:20px;height:20px}.icon-btn{color:#25344c}
.header__search:before,
.header__search .search-icon,

.weather__icon{width:52px;height:52px;display:grid;place-items:center;color:#f0a000}.weather__icon .icon{width:46px;height:46px}
.weather__meta span{display:inline-flex;align-items:center;gap:6px}.meta-icon{width:15px;height:15px}
.quick-icon{color:var(--blue)}.quick-card:nth-child(2) .quick-icon{color:#129255}.quick-card:nth-child(3) .quick-icon{color:#7348e9}.quick-card:nth-child(4) .quick-icon{color:#1680a6}.quick-icon .icon{width:22px;height:22px}
.stat-meta{gap:7px}.stat-meta .meta-icon:nth-of-type(2){margin-left:3px}
.mobile-nav a{grid-template-rows:26px 1fr;align-content:center}.mobile-nav .nav-icon{width:21px;height:21px}.mobile-nav .nav-add-icon{width:23px;height:23px}.mobile-nav a.add{display:grid;place-items:center}
.upload-box{gap:8px;align-content:center}.upload-icon{width:25px;height:25px;margin:0 auto}.upload-box span{display:block}
.empty-icon{width:54px;height:54px;margin:0 auto 12px;color:#8c99ab}.empty-icon .icon{width:54px;height:54px}
.detail-meta{gap:6px}.detail-meta .meta-dot{margin:0 2px;color:#a0aabc}

/* Oskol Plus brand */
.brand--logo{min-width:226px;gap:0}.brand__logo{width:208px;height:auto;display:block}.brand--logo:hover{opacity:.94}
@media(max-width:760px){.brand--logo{min-width:0}.brand__logo{width:166px}.header__inner{gap:12px}}

/* v2 site polish: larger Oskol Plus brand + full footer */
.header__inner{height:92px;gap:30px}
.brand--logo{min-width:276px}
.brand__logo{width:258px}
.nav a{padding:11px 14px}

.site-footer{margin-top:26px;background:#fff;border-top:1px solid var(--line);color:var(--text)}
.site-footer__social{padding:34px 0 30px}
.site-footer__social-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:20px}
.site-footer__eyebrow{font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted);margin-bottom:8px}
.site-footer__title{margin:0;font-size:28px;letter-spacing:-.5px}
.site-footer__social-note{max-width:440px;margin:0;color:var(--muted);font-size:13px;line-height:1.55;text-align:right}
.social-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}
.social-link{min-height:116px;display:flex;align-items:center;justify-content:center;gap:14px;padding:20px;border-right:1px solid var(--line);transition:.18s ease;background:#fff}
.social-link:last-child{border-right:0}
.social-link:hover{background:#f8fbff;transform:translateY(-1px)}
.social-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:0 0 46px;color:#fff}
.social-icon svg{width:24px;height:24px;display:block;fill:currentColor}
.social-icon--vk{background:#2787f5}.social-icon--tg{background:#28a8e9}.social-icon--yt{background:#ff1f2c}.social-icon--ok{background:#f7931e}
.social-link__text strong{display:block;font-size:15px}.social-link__text span{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.site-footer__bottom{border-top:1px solid var(--line);background:#f8fafc}
.site-footer__bottom-inner{min-height:94px;display:grid;grid-template-columns:280px 1fr auto;align-items:center;gap:32px}
.site-footer__brand img{width:220px;height:auto}
.site-footer__links{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;color:#6b778c;font-size:13px;font-weight:600}
.site-footer__links a:hover{color:var(--blue)}
.site-footer__copy{text-align:right;color:#8a96a8;font-size:12px;line-height:1.45;white-space:nowrap}

@media(max-width:1100px){
  .header__inner{height:84px}.brand--logo{min-width:244px}.brand__logo{width:228px}
  .site-footer__bottom-inner{grid-template-columns:220px 1fr}.site-footer__brand img{width:196px}.site-footer__copy{grid-column:1/-1;text-align:center;padding-bottom:18px}
  .social-link{min-height:104px;gap:10px}.social-link__text span{display:none}
}
@media(max-width:720px){
  .header__inner{height:68px}.brand--logo{min-width:0}.brand__logo{width:190px}
  .site-footer{margin-top:12px}.footer{display:none!important}
  .site-footer__social{padding:26px 0 22px}.site-footer__social-head{align-items:start;flex-direction:column;margin-bottom:16px}.site-footer__social-note{text-align:left;max-width:none}
  .site-footer__title{font-size:24px}.social-strip{grid-template-columns:1fr 1fr;border-radius:18px}.social-link{min-height:92px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:flex-start;padding:16px}.social-link:nth-child(2n){border-right:0}.social-link:nth-last-child(-n+2){border-bottom:0}.social-icon{width:42px;height:42px;flex-basis:42px}.social-icon svg{width:22px;height:22px}.social-link__text span{display:block}
  .site-footer__bottom-inner{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:24px 0 96px}.site-footer__brand img{width:190px}.site-footer__links{justify-content:flex-start;gap:14px 20px}.site-footer__copy{text-align:left;white-space:normal;padding:0}
}
@media(max-width:420px){.brand__logo{width:174px}.social-link__text span{display:none}}


/* v3.1 — stronger brand, clean content scaffold, stable mobile navigation */
.header__inner{height:104px;gap:32px}
.brand--logo{min-width:320px;display:flex;align-items:center}
.brand__logo{width:300px;max-height:78px;object-fit:contain}
.site-footer__bottom-inner{min-height:110px;grid-template-columns:330px 1fr auto}
.site-footer__brand img{width:286px;max-height:82px;object-fit:contain}
.profile-chip>.icon{width:20px;height:20px}
.clean-intro{border:1px solid var(--line);border-radius:24px;padding:38px 42px;background:linear-gradient(135deg,#fff 0%,#f6f9ff 100%);margin-bottom:18px}
.clean-intro__eyebrow{display:block;color:var(--blue);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}.clean-intro h1{margin:0 0 10px;font-size:38px;letter-spacing:-1px}.clean-intro p{margin:0;color:var(--muted);max-width:700px;line-height:1.65}
.quick-grid--home{margin-top:0}.content-shell{margin-top:28px}.content-shell__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.content-shell__head h2{margin:0;font-size:25px}
.empty-state--wide{min-height:340px;background:#fff;border-style:solid}.empty-icon-line{width:42px;height:42px;fill:none;color:#7c8da7;margin:0 auto 14px}.empty-state h3{margin:0 0 7px;font-size:20px}.empty-state p{margin:0;line-height:1.55}
.market-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.article--empty{padding:28px}.listing-detail--empty{align-items:stretch}.gallery--empty{display:block}.detail-card--empty{min-height:480px}.content-skeleton{height:18px;border-radius:999px;background:linear-gradient(90deg,#eef2f7,#f6f8fb,#eef2f7);margin:16px 0}.content-skeleton--hero{height:380px;border-radius:20px;margin-top:0}.content-skeleton--gallery{height:520px;border-radius:20px;margin:0}.content-skeleton--title{height:34px;width:72%}.content-skeleton--short{width:45%}.content-skeleton--price{height:40px;width:35%}.profile-placeholder{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:var(--blue);flex:0 0 54px}.profile-placeholder .icon{width:25px;height:25px}

@media(max-width:1100px){.header__inner{height:94px}.brand--logo{min-width:280px}.brand__logo{width:262px}.site-footer__brand img{width:250px}.site-footer__bottom-inner{grid-template-columns:280px 1fr}.clean-intro h1{font-size:34px}}
@media(max-width:720px){
  body{padding-bottom:82px}.header{position:sticky;top:0;z-index:80}.header__inner{height:74px;gap:10px;padding:0}.brand--logo{min-width:0;flex:1;overflow:hidden}.brand__logo{width:208px;max-width:100%;max-height:62px}.header__actions{margin-left:auto;display:flex;align-items:center;gap:8px}.header__actions .icon-btn{width:42px;height:42px}.profile-chip{display:none}.header__search,.nav{display:none}
  .mobile-nav{display:grid!important;position:fixed;z-index:120;left:0;right:0;bottom:0;width:100%;height:72px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:0 -8px 26px rgba(20,48,90,.08);padding:0 max(6px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-left));backdrop-filter:none}
  .mobile-nav a{min-width:0;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 2px 6px;font-size:10px;line-height:1;color:#6d7a91;white-space:nowrap;overflow:hidden}.mobile-nav a span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.mobile-nav a.active{color:var(--blue);font-weight:800}.mobile-nav a.add{align-self:center;justify-self:center;width:48px;height:48px;min-height:48px;padding:0;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 7px 18px rgba(37,99,235,.28);overflow:visible}.mobile-nav a.add .nav-add-icon{width:23px;height:23px}.mobile-nav .nav-icon{width:20px;height:20px;flex:0 0 auto}
  .site-footer__brand img{width:232px}.site-footer__bottom-inner{padding-bottom:100px}.site-footer__social-head{gap:10px}.clean-intro{padding:24px 20px;border-radius:20px}.clean-intro h1{font-size:30px}.clean-intro p{font-size:14px}.market-title-row{align-items:flex-start;flex-direction:column}.market-title-row .btn{width:100%;text-align:center}.content-skeleton--hero{height:240px}.content-skeleton--gallery{height:320px}.detail-card--empty{min-height:320px}
}
@media(max-width:420px){.brand__logo{width:192px}.site-footer__brand img{width:214px}.mobile-nav a{font-size:9px}}

/* v3.2 — mobile bottom navigation: fixed viewport dock, equal cells */
@media (max-width:720px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px))}
  .mobile-nav{
    display:grid!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    max-width:none!important;
    height:calc(64px + env(safe-area-inset-bottom, 0px))!important;
    margin:0!important;
    padding:0 0 env(safe-area-inset-bottom, 0px)!important;
    grid-template-columns:repeat(5,1fr)!important;
    align-items:stretch!important;
    gap:0!important;
    border-radius:0!important;
    border:0!important;
    border-top:1px solid var(--line)!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:0 -6px 20px rgba(15,23,42,.07)!important;
    z-index:1000!important;
    transform:none!important;
  }
  .mobile-nav a,
  .mobile-nav a.add{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    height:64px!important;
    min-height:64px!important;
    margin:0!important;
    padding:7px 2px 6px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#6d7a91!important;
    overflow:visible!important;
  }
  .mobile-nav a.active{color:var(--blue)!important;font-weight:800!important}
  .mobile-nav .nav-icon{width:20px!important;height:20px!important;display:block!important;flex:0 0 20px!important}
  .mobile-nav a span{display:block!important;width:100%!important;max-width:100%!important;text-align:center!important;font-size:9.5px!important;line-height:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .mobile-nav a.add .nav-add-icon{
    display:block!important;
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
    padding:12px!important;
    border-radius:50%!important;
    background:var(--blue)!important;
    color:#fff!important;
    box-shadow:0 6px 16px rgba(37,99,235,.25)!important;
  }
}
@media (max-width:380px){
  .mobile-nav a span{font-size:9px!important}
  .mobile-nav a.add .nav-add-icon{width:44px!important;height:44px!important;flex-basis:44px!important;padding:11px!important}
}

/* Auth / registration */
.is-hidden{display:none!important}.auth-page{min-height:100vh;background:linear-gradient(145deg,#f8fbff 0%,#eef5ff 58%,#f7f9fc 100%)}.auth-header{background:rgba(255,255,255,.86);backdrop-filter:blur(18px)}.auth-header .header__inner{justify-content:space-between}.auth-close{width:42px;height:42px;border:1px solid var(--line);border-radius:14px;display:grid;place-items:center;font-size:28px;color:#5d6b82;background:#fff}.auth-main{padding:54px 0 80px}.auth-layout{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr 480px;gap:72px;align-items:center}.auth-copy{padding:18px}.auth-kicker{display:block;color:var(--blue);font-weight:850;text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin-bottom:15px}.auth-copy h1,.secondary-shell h1,.miniapp-shell h1{font-size:46px;line-height:1.06;letter-spacing:-1.6px;margin:0 0 18px}.auth-copy>p{max-width:580px;color:var(--muted);font-size:17px;line-height:1.7}.auth-points{display:grid;gap:14px;margin-top:30px}.auth-points>div{display:flex;gap:13px;align-items:flex-start}.auth-points>div>span{width:32px;height:32px;border-radius:10px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-weight:900;flex:0 0 32px}.auth-points p{margin:0}.auth-points strong,.auth-points small{display:block}.auth-points small{color:var(--muted);font-size:13px;line-height:1.5;margin-top:3px}.auth-panel{background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:0 28px 70px rgba(36,65,110,.13)}.auth-panel__head h2{font-size:26px;margin:0 0 5px}.auth-panel__head p{margin:0 0 24px;color:var(--muted)}.telegram-auth-btn{display:flex;align-items:center;gap:14px;border:1px solid #cfe6fb;background:#f5fbff;padding:14px 16px;border-radius:17px;transition:.18s}.telegram-auth-btn:hover{transform:translateY(-1px);border-color:#90ccef}.telegram-auth-btn--disabled{opacity:.65;cursor:not-allowed}.telegram-auth-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#28a8e9;color:#fff;flex:0 0 44px}.telegram-auth-icon svg{width:23px;height:23px;fill:currentColor}.telegram-auth-btn strong,.telegram-auth-btn small{display:block}.telegram-auth-btn small{color:var(--muted);margin-top:3px}.auth-divider{display:flex;align-items:center;gap:12px;color:#96a2b4;font-size:12px;margin:22px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-card label{display:block;font-size:13px;font-weight:750;margin-bottom:8px}.auth-input-wrap{height:54px;border:1px solid #dfe6ef;border-radius:14px;background:#fff;display:flex;align-items:center;padding:0 14px;transition:.18s}.auth-input-wrap:focus-within{border-color:#83b8ff;box-shadow:0 0 0 4px rgba(22,119,255,.08)}.auth-input-wrap svg{width:20px;height:20px;color:#8291a7;fill:none;margin-right:9px}.auth-input-wrap input{border:0;outline:0;width:100%;font:inherit;font-size:15px}.auth-primary{width:100%;height:52px;border:0;border-radius:14px;background:linear-gradient(135deg,#1677ff,#0d63e8);color:#fff;font-weight:800;font-size:15px;margin-top:14px;cursor:pointer;box-shadow:0 8px 20px rgba(22,119,255,.2)}.auth-primary:disabled{opacity:.6;cursor:wait}.auth-hint,.auth-legal{color:var(--muted);font-size:12px;line-height:1.55}.auth-hint{margin:11px 2px 0}.auth-legal{text-align:center;margin:18px 10px 0}.auth-code{width:100%;height:62px;border:1px solid #dfe6ef;border-radius:14px;text-align:center;letter-spacing:.4em;font-size:26px;font-weight:800;outline:0}.auth-code:focus{border-color:#83b8ff;box-shadow:0 0 0 4px rgba(22,119,255,.08)}.auth-sent-box{background:#f3f8ff;border-radius:14px;padding:12px 14px;margin-bottom:16px;color:#50627b;font-size:13px}.auth-text-btn,.secondary-skip{border:0;background:transparent;color:var(--blue);font-weight:750;cursor:pointer;display:block;margin:14px auto 0}.auth-error{color:#d9364f;font-size:13px;line-height:1.45;margin-top:12px}.auth-debug{margin-top:12px;padding:11px 12px;border-radius:12px;background:#fff7d8;color:#765d00;font-size:12px}.secondary-shell{max-width:650px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:30px;padding:42px;box-shadow:0 26px 70px rgba(36,65,110,.12);text-align:center}.secondary-icon{width:62px;height:62px;border-radius:20px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;margin:0 auto 20px}.secondary-icon svg{width:30px;height:30px}.secondary-shell h1{font-size:34px;letter-spacing:-1px}.secondary-lead{color:var(--muted);line-height:1.65;max-width:560px;margin:0 auto 24px}.secondary-email-card{text-align:left}.secondary-tg{text-align:left;max-width:500px;margin:24px auto}.secondary-skip{color:#5e6d84;margin-top:24px}.secondary-footnote{font-size:12px;color:#96a2b4}.auth-config-note{padding:14px;background:#f7f9fc;border-radius:14px;color:var(--muted)}.confirm-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px}.confirm-backdrop{position:absolute;inset:0;border:0;background:rgba(10,20,38,.5)}.confirm-card{position:relative;width:min(430px,100%);background:#fff;border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.25);text-align:center}.confirm-card h2{margin:0 0 10px}.confirm-card p{color:var(--muted);line-height:1.55}.miniapp-page .auth-main{min-height:100vh;display:grid;place-items:center;padding:24px}.miniapp-shell{width:min(460px,100%);background:#fff;border-radius:28px;padding:32px;text-align:center;box-shadow:var(--shadow)}.miniapp-logo{width:240px;max-width:80%;margin:0 auto 34px}.miniapp-shell h1{font-size:32px;letter-spacing:-.8px}.miniapp-shell p{color:var(--muted);line-height:1.6}.miniapp-status{margin:22px auto 0;display:inline-flex;align-items:center;gap:10px;background:#f4f8ff;border-radius:999px;padding:11px 16px;color:#59708e;font-size:13px}.miniapp-spinner{width:16px;height:16px;border:2px solid #cde0fa;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile-placeholder img{width:100%;height:100%;object-fit:cover;border-radius:50%}.logout-link{color:#e23c52!important}.account-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px}.account-card h2{margin:0 0 18px}.account-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.account-row span{color:var(--muted)}.account-card p{color:var(--muted);line-height:1.6;margin:18px 0 0}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr;gap:28px;max-width:560px}.auth-copy{text-align:center}.auth-copy>p{margin-left:auto;margin-right:auto}.auth-points{text-align:left}.auth-copy h1{font-size:40px}.auth-main{padding-top:28px}}
@media(max-width:720px){.auth-header .header__inner{padding:0 16px}.auth-main{padding:22px 14px 42px}.auth-copy{padding:8px 6px}.auth-copy h1{font-size:34px}.auth-copy>p{font-size:15px}.auth-panel{padding:22px;border-radius:24px}.secondary-shell{padding:26px 20px;border-radius:24px}.secondary-shell h1{font-size:29px}.miniapp-shell{padding:28px 20px}.auth-page{padding-bottom:0}.auth-page .brand__logo{width:205px}}

/* Notifications */
.notification-link{position:relative;text-decoration:none}
.notification-badge{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.notifications-page{max-width:980px}.notifications-list{display:grid;gap:10px}.notification-card{display:flex;align-items:flex-start;gap:14px;padding:18px;border:1px solid var(--border,#e2e8f0);border-radius:18px;background:#fff;color:inherit;text-decoration:none;position:relative}.notification-card.is-unread{background:#f7fbff;border-color:#bfdbfe}.notification-card__icon{width:42px;height:42px;border-radius:13px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.notification-card__icon svg{width:21px;height:21px}.notification-card__body{min-width:0;flex:1}.notification-card__top{display:flex;gap:16px;justify-content:space-between}.notification-card__top span{color:#94a3b8;font-size:12px;white-space:nowrap}.notification-card p{margin:7px 0 0;color:#64748b;line-height:1.55}.notification-dot{width:9px;height:9px;background:#2563eb;border-radius:50%;margin-top:8px;flex:0 0 auto}

/* Admin */
.admin-body{margin:0;background:#f4f7fb;color:#0f172a;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.admin-top{height:72px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:30}.admin-brand img{width:190px;height:auto;display:block}.admin-top__right{display:flex;align-items:center;gap:18px;font-size:13px;color:#64748b}.admin-top__right a{color:#2563eb;text-decoration:none;font-weight:700}.admin-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 72px)}.admin-sidebar{background:#fff;border-right:1px solid #e2e8f0;padding:24px 16px;display:flex;flex-direction:column;gap:5px}.admin-sidebar__title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#94a3b8;font-weight:800;padding:0 12px 10px}.admin-sidebar>a,.admin-sidebar__bottom a{padding:11px 12px;border-radius:11px;text-decoration:none;color:#334155;font-weight:650;font-size:14px}.admin-sidebar>a:hover,.admin-sidebar>a.active{background:#eff6ff;color:#2563eb}.admin-sidebar__bottom{margin-top:auto;padding-top:20px;border-top:1px solid #eef2f7}.admin-main{padding:30px;min-width:0}.admin-page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.admin-page-head h1{margin:0;font-size:30px}.admin-page-head p{margin:5px 0 0;color:#94a3b8}.admin-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:22px;box-shadow:0 8px 26px rgba(15,23,42,.035)}.admin-card h2{margin:0 0 18px;font-size:18px}.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.admin-stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px}.admin-stat span,.admin-stat small{display:block;color:#64748b}.admin-stat strong{display:block;font-size:30px;margin:5px 0}.admin-role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-role-grid>div{padding:16px;border-radius:14px;background:#f8fafc}.admin-role-grid p{color:#64748b;font-size:13px;line-height:1.45;margin:6px 0 0}.admin-search,.admin-actions{display:flex;gap:10px;margin-bottom:16px}.admin-search input{flex:1;min-width:0}.admin-actions{justify-content:space-between;align-items:center}.admin-table-wrap{padding:0;overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{text-align:left;padding:14px 16px;border-bottom:1px solid #eef2f7;font-size:13px;vertical-align:middle}.admin-table th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;background:#fbfdff}.admin-table td strong,.admin-table td small{display:block}.admin-table td small{color:#94a3b8;margin-top:3px}.admin-link{color:#2563eb;font-weight:700;text-decoration:none}.admin-empty{text-align:center!important;color:#94a3b8;padding:40px!important}.admin-role,.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#f1f5f9}.role-moderator{background:#fff7ed;color:#c2410c}.role-editor{background:#f5f3ff;color:#7c3aed}.role-admin{background:#eff6ff;color:#2563eb}.role-superadmin{background:#0f172a;color:#fff}.status-published{background:#ecfdf5;color:#047857}.status-pending{background:#fff7ed;color:#c2410c}.status-rejected{background:#fef2f2;color:#dc2626}.status-draft{background:#f1f5f9;color:#475569}.status-archived{background:#f8fafc;color:#94a3b8}.admin-alert{padding:13px 16px;border-radius:12px;background:#ecfdf5;color:#047857;margin-bottom:16px;font-weight:650}.admin-alert--error{background:#fef2f2;color:#b91c1c}.admin-two-col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px}.admin-form{display:grid;gap:15px}.admin-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#334155}.admin-form input,.admin-form select,.admin-form textarea,.admin-search input{border:1px solid #dbe4ef;border-radius:11px;padding:11px 12px;font:inherit;background:#fff;color:#0f172a;outline:none}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.admin-search input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #eff6ff}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.admin-form-grid .span-2{grid-column:1/-1}.admin-form-actions{display:flex;gap:10px;align-items:center;margin-top:4px}.btn-danger{background:#fff1f2!important;color:#e11d48!important;border:1px solid #fecdd3!important}.admin-info-list{display:grid;gap:0;margin-bottom:20px}.admin-info-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eef2f7}.admin-info-list span{color:#64748b}.admin-muted{color:#94a3b8;line-height:1.5;font-size:12px;margin-top:16px}.admin-notif-log{max-height:540px;overflow:auto}.admin-notif-log>div{padding:12px 0;border-bottom:1px solid #eef2f7}.admin-notif-log strong,.admin-notif-log span{display:block}.admin-notif-log span{font-size:12px;color:#94a3b8;margin-top:3px}.admin-denied{font-family:system-ui;max-width:560px;margin:100px auto;padding:30px}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:sticky;top:72px;z-index:20;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid #e2e8f0;padding:9px 12px}.admin-sidebar__title,.admin-sidebar__bottom{display:none}.admin-sidebar>a{white-space:nowrap}.admin-main{padding:18px}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-role-grid{grid-template-columns:1fr 1fr}.admin-two-col{grid-template-columns:1fr}.admin-top__right span{display:none}}
@media(max-width:600px){.admin-top{padding:0 14px;height:64px}.admin-brand img{width:155px}.admin-sidebar{top:64px}.admin-stats{grid-template-columns:1fr 1fr}.admin-stat strong{font-size:24px}.admin-main{padding:14px}.admin-page-head h1{font-size:24px}.admin-role-grid,.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .span-2{grid-column:auto}.admin-actions{align-items:flex-start;flex-direction:column}.notification-card{padding:14px}.notification-card__top{display:block}.notification-card__top span{display:block;margin-top:4px}.notifications-page .page-title{align-items:flex-start;gap:12px}}

/* Public content connected to the admin panel */
.public-loading{grid-column:1/-1;min-height:180px;display:grid;place-items:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:20px}
.public-card-link{display:block;color:inherit;text-decoration:none}
.public-card-action,.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-weight:800;text-decoration:none}
.public-card-action{font-size:13px;margin-top:4px}
.public-meta{font-size:12px;color:var(--muted);line-height:1.45}
.media-placeholder{width:100%;height:100%;min-height:120px;background:linear-gradient(135deg,#eef3f9,#e4ebf4);position:relative}
.media-placeholder:after{content:'';position:absolute;inset:0;margin:auto;width:34px;height:34px;border:2px solid #c7d2e2;border-radius:10px;opacity:.7}
.listing-description{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:16px;line-height:1.65;color:#334159}
.listing-description p{margin:0 0 14px}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.event-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-sm)}
.event-card__media{display:block;aspect-ratio:16/10;background:#edf2f7;overflow:hidden}
.event-card__media img{width:100%;height:100%;object-fit:cover}
.event-card__body{padding:18px}
.event-card h3{margin:7px 0 9px;font-size:20px;line-height:1.25}
.event-card h3 a{color:inherit;text-decoration:none}
.event-card p{margin:0 0 12px;color:var(--muted);line-height:1.5;font-size:14px}
.event-date{font-size:12px;font-weight:900;color:var(--blue);text-transform:uppercase;letter-spacing:.03em}
.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap: 2px}
.directory-card{display:grid;grid-template-columns:50px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-sm)}
.directory-card__icon{width:50px;height:50px;border-radius:15px;background:#eef4ff;color:var(--blue);display:grid;place-items:center}
.directory-card__icon .icon{width:24px;height:24px}
.directory-card h3{margin:2px 0 8px;font-size:18px}.directory-card p{margin:0 0 10px;color:var(--muted);line-height:1.45;font-size:14px}
.directory-detail{max-width:900px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:26px;padding:30px;display:grid;grid-template-columns:76px 1fr;gap:22px;box-shadow:var(--shadow-sm)}
.directory-card__icon--large{width:76px;height:76px;border-radius:20px}.directory-card__icon--large .icon{width:34px;height:34px}.directory-detail h1{font-size:38px;line-height:1.1;margin:8px 0 16px}
.is-hidden{display:none!important}
@media(max-width:980px){.event-grid,.directory-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.event-grid{grid-template-columns:1fr}.directory-grid{grid-template-columns:1fr;gap: 2px}.event-card{border-radius:18px}.directory-detail{grid-template-columns:1fr;padding:20px}.directory-detail h1{font-size:30px}.public-loading{min-height:130px}}

/* Oskol Plus: загрузки и предложенные новости */
.admin-upload-current{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.admin-upload-current img{width:112px;height:74px;object-fit:cover;border-radius:10px}.admin-upload-current span{font-weight:700;color:#526178}.admin-check{display:flex!important;align-items:center;gap:8px;margin-top:9px;font-weight:600!important}.admin-check input{width:auto!important}.proposal-form{max-width:820px;display:grid;gap:18px}.proposal-form label{display:grid;gap:8px;font-size:13px;font-weight:800;color:#2f3c50}.proposal-form input,.proposal-form textarea{width:100%;border:1px solid #dfe6ef;border-radius:14px;padding:13px 14px;font:inherit;outline:none;background:#fff}.proposal-form input:focus,.proposal-form textarea:focus{border-color:#83b8ff;box-shadow:0 0 0 4px rgba(22,119,255,.08)}.proposal-form small{font-weight:500;color:var(--muted)}.proposal-success{max-width:720px}.proposal-success h2{margin-top:0}
@media(max-width:720px){.proposal-form{padding:18px}.admin-upload-current{align-items:flex-start;flex-direction:column}.admin-upload-current img{width:100%;height:180px}}

.is-hidden{display:none!important}

/* v4: media, moderation, search, notification detail */
.admin-media-grid,.review-media,.public-media-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.admin-media-item{display:block;border:1px solid var(--line);border-radius:14px;padding:8px;background:#fff}.admin-media-item img,.admin-media-item video,.review-media img,.review-media video,.public-media-gallery img,.public-media-gallery video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#eef2f7}.admin-media-item span{display:flex;gap:8px;align-items:center;margin-top:7px;font-size:13px}
.review-list{display:grid;gap:18px}.review-card{padding:22px}.review-card__head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.review-card h2{margin:8px 0 4px}.review-card__head p{margin:0;color:var(--muted);font-size:13px}.review-media{margin:18px 0}.review-summary{font-weight:700}.review-body{white-space:normal;line-height:1.65}.review-actions{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.review-actions textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical;margin-bottom:10px}.review-actions>div{display:flex;gap:10px;flex-wrap:wrap}
.notification-detail-wrap{max-width:850px}.notification-detail{padding:30px;margin-top:16px}.notification-detail h1{font-size:32px;margin:8px 0 18px}.notification-detail__meta{color:var(--muted);font-size:13px}.notification-detail__body{font-size:17px;line-height:1.75;margin-bottom:24px}.back-link{color:var(--blue);font-weight:700}
.search-results{display:grid;gap:12px}.search-result-card{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:18px;align-items:center}.search-result-card img{width:140px;height:100px;object-fit:cover;border-radius:12px}.search-result-card h3{margin:4px 0 6px;font-size:19px}.search-result-card p{margin:0;color:var(--muted)}.search-result-type{font-size:12px;color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.public-media-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.public-media-gallery>:first-child{grid-column:1/-1;aspect-ratio:16/9}.article .public-media-gallery{margin-bottom:20px}
@media(max-width:720px){.review-card__head{display:block}.search-result-card{grid-template-columns:88px 1fr;gap:12px}.search-result-card img{width:88px;height:76px}.notification-detail{padding:20px}.notification-detail h1{font-size:26px}.public-media-gallery{grid-template-columns:1fr}.public-media-gallery>:first-child{grid-column:auto}}
.header__search:before{display:none!important}.header__search .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:1;color:#7d8ba1;pointer-events:none}

/* v5: carousel, seller, views, admin analytics */
.media-carousel{position:relative;width:100%;overflow:hidden;border-radius:22px;background:#eef2f7}.media-carousel__viewport{position:relative;aspect-ratio:16/10;overflow:hidden}.media-carousel__slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .2s ease}.media-carousel__slide.is-active{opacity:1;pointer-events:auto}.media-carousel__slide img,.media-carousel__slide video{width:100%;height:100%;display:block;object-fit:contain;background:#0f172a}.media-carousel__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:44px;height:44px;border:0;border-radius:50%;background:rgba(15,23,42,.66);color:#fff;font-size:32px;line-height:1;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}.media-carousel__arrow:hover{background:rgba(15,23,42,.82)}.media-carousel__arrow--prev{left:14px}.media-carousel__arrow--next{right:14px}.media-carousel__counter{position:absolute;right:14px;top:14px;z-index:4;padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.68);color:#fff;font-size:12px;font-weight:800}.media-carousel__dots{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:4;display:flex;gap:6px;padding:6px 9px;border-radius:999px;background:rgba(15,23,42,.38)}.media-carousel__dots button{width:7px;height:7px;border:0;border-radius:50%;padding:0;background:rgba(255,255,255,.55);cursor:pointer}.media-carousel__dots button.is-active{width:20px;border-radius:999px;background:#fff}.views-meta{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.views-meta .icon{width:15px;height:15px}.card-bottom-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}.detail-views{margin:9px 0 2px}.seller-mini{display:flex;align-items:center;gap:7px;margin:8px 0 5px;color:#475569;font-size:12px;font-weight:700}.seller-mini__avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#2563eb;overflow:hidden;font-size:11px}.seller-mini__avatar img{width:100%;height:100%;object-fit:cover}.seller-card__avatar{width:48px;height:48px;border-radius:50%;background:#eaf2ff;color:#2563eb;display:grid;place-items:center;font-size:20px;font-weight:900;overflow:hidden}.seller-card__avatar img{width:100%;height:100%;object-fit:cover}.seller-card span,.seller-card strong,.seller-card small{display:block}.seller-card span,.seller-card small{color:var(--muted);font-size:12px}.seller-card strong{margin:2px 0;font-size:15px}.seller-card--unknown{color:#64748b}.admin-stat--accent{background:linear-gradient(135deg,#eff6ff,#fff)}.admin-traffic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.admin-traffic-card{padding:18px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.admin-traffic-card span,.admin-traffic-card small{display:block;color:#64748b}.admin-traffic-card strong{display:block;font-size:30px;margin:7px 0}.admin-delete-zone{margin-top:18px;padding-top:18px;border-top:1px solid #fee2e2}.admin-delete-zone h3{color:#b91c1c;margin:0 0 8px}.admin-delete-zone p{color:#64748b;font-size:13px;line-height:1.5}.admin-delete-zone .btn-danger{font-weight:800}
@media(max-width:720px){.media-carousel{border-radius:16px}.media-carousel__arrow{width:38px;height:38px;font-size:28px}.media-carousel__arrow--prev{left:8px}.media-carousel__arrow--next{right:8px}.media-carousel__counter{right:9px;top:9px}.admin-traffic-grid{grid-template-columns:1fr}.card-bottom-meta{align-items:flex-start}}

/* 1. Убиваем зум на iOS (шрифт строго 16px) */
@media (max-width: 720px) {
  input, textarea, select {
    font-size: 16px !important; 
  }
}

/* 2. Убираем горизонтальный скролл от длинных email и уведомлений */
.account-row span, 
.notification-card p, 
.notification-card__top, 
.notification-card__body,
.profile-content {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    max-width: 100% !important;
}

/* Убираем скролл у самих карточек, если он появился */
.notification-card, .account-card {
    overflow: hidden !important;
}

/* ============================================
   БЕЗОПАСНЫЙ ФИКС УВЕДОМЛЕНИЙ И ЗУМА
   ============================================ */

/* Запрещаем скролл вбок всему сайту */
html, body {
    overflow-x: hidden !important;
    width: 100%;
    max-width: 100vw;
}

.notification-card {
    display: flex !important;
    width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.notification-card__body {
    min-width: 0 !important; /* Главный секрет сжатия текста во flex */
    overflow: hidden !important;
}

.notification-card__top {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
}

.notification-card * {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
}

/* Фикс зума для iOS */
@media (max-width: 720px) {
  input, textarea, select {
    font-size: 16px !important;
  }
}


/* Возвращаем контейнер в центр и задаем нормальные отступы */
  .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }
}

/* Отключаем зум на iOS при вводе (шрифт 16px) */
@media (max-width: 720px) {
  input, textarea, select {
    font-size: 16px !important;
  }
}

/* Защита карточек уведомлений от растягивания */
.notification-card {
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.notification-card__body {
  min-width: 0 !important;
  overflow: hidden !important;
}
.notification-card * {
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

/* ============================================
   ОТСТУП СНИЗУ, ЧТОБЫ МЕНЮ НЕ ПЕРЕКРЫВАЛО КОНТЕНТ
   ============================================ */
@media (max-width: 720px) {
    /* Добавляем запас снизу для body и основного контейнера */
    body, 
    .page, 
    main {
        padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
    }

    /* Убеждаемся, что меню всегда поверх контента */
    .mobile-nav {
        z-index: 9999 !important;
    }
}

/* ============================================
   ПОЛНОЭКРАННАЯ ГАЛЕРЕЯ (Lightbox + Свайп)
   ============================================ */







/* Фикс для формы загрузки фото (разместить объявление) */
.photo-upload, .upload-area, .file-upload {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
}

.photo-upload label, 
.photo-upload .upload-btn, 
.upload-area label, 
.upload-area .upload-btn {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 14px !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* Запрещаем растягиваться */
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}
.photo-upload {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    margin-bottom: 24px !important;
}
#photoPreview:empty {
    display: none !important;
}

/* Фиксируем высоту */
    min-height: 80px !important;
    max-height: 80px !important;
    padding: 0 16px !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    flex: none !important;          /* Запрещаем растягиваться */
}

.photo-upload label.upload-box svg {
    width: 24px !important;
    height: 24px !important;
    flex: none !important;
}

/* ============================================
   СКРЫВАЕМ "КОРОТКО О СОБЫТИИ"
   ============================================ */
/* Скрываем на странице просмотра новости */
.article__lead, 
.article-lead, 
.lead-text { 
    display: none !important; 
}
/* Скрываем в форме предложки (если там есть такое поле) */
textarea[name="short_description"], 
textarea[name="lead"], 
textarea[name="excerpt"] { 
    display: none !important; 
}
/* Скрываем сам лейбл этого поля */
label[for="short_description"], 
label[for="lead"] { 
    display: none !important; 
}

/* Центрируем по горизонтали */
    text-align: center !important;
    width: 100% !important;
    gap: 10px !important; /* Отступ между иконкой и текстом */
}

/* Заставляем любой текст внутри кнопки быть по центру */
label.upload-box span, 
label.upload-box div, 
label.upload-box p {
    display: inline-block !important;
    text-align: center !important;
    margin: 0 !important;
    width: auto !important;
    font-size: 15px !important;
}

/* Убеждаемся, что иконка не сплющивается */
label.upload-box svg {
    flex-shrink: 0 !important;
    margin: 0 !important;
}

/* ============================================
   ПОЛНАЯ ЗАЛИВКА СЕРДЕЧКА В ИЗБРАННОМ
   ============================================ */


/* ============================================
   ПОЛНАЯ ЗАЛИВКА СЕРДЕЧКА (ПРИНУДИТЕЛЬНО)
   ============================================ */


/* Жесткая заливка сердца */



/* Отступы для кнопок на странице успеха */
.proposal-success .btn,
.proposal-success a.btn {
    margin-top: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* 1. Сетка барахолки (строго 2 колонки, одинаковой высоты) */
.market-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

/* 2. Сама карточка товара */
.listing-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    border-radius: 16px !important;
    box-sizing: border-box !important;
}

/* 3. Картинка товара (фиксируем высоту, чтобы они не диктовали размер) */
.listing-card > img, 
.listing-card__img {
    width: 100% !important;
    height: 160px !important; /* Делаем картинки одинаковыми */
    object-fit: cover !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

/* Если внутри обертки */
.listing-card__img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* 4. Тело карточки (растягивается на всё свободное место) */
.listing-card__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    padding: 12px !important;
    height: 100% !important;
}

/* 5. Цена (идет в самом верху тела) */
.listing-card .price {
    margin: 0 0 6px 0 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    flex-shrink: 0 !important;
}

/* 6. Название товара (обрезаем до 2 строк, чтобы не ломать высоту) */
.listing-card h3 {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    min-height: 36px !important; /* Место под 2 строки */
    margin: 0 0 8px 0 !important;
    font-size: 14px !important;
    line-height: 18px !important;
}

/* 7. Мета-информация (автор, город, дата, просмотры) — прижимаем к низу */
.listing-card .meta {
    margin-top: auto !important; /* Прижимает к низу */
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    font-size: 11px !important;
    color: #64748b !important;
}

/* Отступ между меню и блоком "Доступ к аккаунту" */
}

.account-card {
    margin-top: 16px !important; /* Дополнительный отступ для самого блока */
}

/* Также добавляем отступ между карточкой профиля и меню, если он нужен */
.profile-card {
    margin-bottom: 20px !important;
}

/* Сбрасываем предыдущие ошибочные отступы */
.profile-content, .account-card {
    margin-top: 0 !important; 
}

/* Добавляем отступ ТОЛЬКО между инфо о пользователе и списком меню */
.profile-user {
    margin-bottom: 20px !important; 
}

/* ============================================
   ШТОРКА ВЫБОРА: НОВОСТЬ ИЛИ ОБЪЯВЛЕНИЕ
   ============================================ */


.add-choice-sheet {
    background: #fff; width: 100%; max-width: 500px;
    border-radius: 24px 24px 0 0; padding: 20px 20px;
    transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    padding-bottom: calc(30px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
}
.add-choice-overlay.active .add-choice-sheet {
    transform: translateY(0);
}
.add-choice-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 20px;
}
.add-choice-header h3 {
    margin: 0; font-size: 18px; font-weight: 800; color: #0f172a;
}
.add-choice-close {
    background: #f1f5f9; border: none; width: 32px; height: 32px;
    border-radius: 50%; font-size: 20px; color: #64748b;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; padding: 0;
}
.add-choice-options {
    display: flex; flex-direction: column; gap: 12px;
}
.add-option-btn {
    display: flex; align-items: center; gap: 16px;
    padding: 16px; border-radius: 16px;
    text-decoration: none; border: 1px solid #e2e8f0;
    transition: background 0.2s;
}
.add-option-btn:active {
    background: #f8fafc;
}
.add-option-icon {
    width: 48px; height: 48px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; flex-shrink: 0;
}
.news-btn .add-option-icon { background: #eff6ff; color: #2563eb; }
.market-btn .add-option-icon { background: #ecfdf5; color: #059669; }
.add-option-text { display: flex; flex-direction: column; }
.add-option-title { font-size: 16px; font-weight: 700; color: #0f172a; }
.add-option-desc { font-size: 13px; color: #64748b; margin-top: 2px; }

/* Делаем заголовок и кнопку гибкими, чтобы они не сжимали друг друга */
.page-title, .content-shell__head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important; /* Отступ между текстом и кнопкой */
    flex-wrap: wrap !important; /* Если не влезает — переносим */
}

/* Запрещаем кнопке сжиматься и переносить текст */
.page-title .btn-primary, 
.page-title .btn, 
.content-shell__head .btn {
    white-space: nowrap !important; /* Текст в одну строку */
    flex-shrink: 0 !important;      /* Кнопка не сжимается */
    padding: 10px 20px !important;  /* Нормальные отступы */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* На мобилках делаем кнопку чуть меньше, чтобы влезала */
@media (max-width: 720px) {
    .page-title .btn-primary, 
    .page-title .btn {
        padding: 8px 14px !important;
        font-size: 13px !important;
    }
}
}

/* 8. Исправляем шапку страницы (чтобы кнопка не распухала) */
@media (max-width: 720px) {
    .page-title {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    .page-title .btn {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        padding: 12px !important;
    }
}

/* ============================================
   КРАСОТА ДЛЯ ПК
   ============================================ */
@media (min-width: 721px) {
}

/* ============================================
   ТО ЖЕ САМОЕ ДЛЯ ПК (чуть больше размеры)
   ============================================ */
@media (min-width: 721px) {
}

/* ============================================
   ТО ЖЕ САМОЕ ДЛЯ ПК (чуть больше размеры)
   ============================================ */
@media (min-width: 721px) {
}

/* ============================================
   ТО ЖЕ САМОЕ ДЛЯ ПК (увеличенные размеры)
   ============================================ */
@media (min-width: 721px) {
}

/* Тело карточки растягивается на весь доступный размер */
    padding: 12px !important;
}

/* Убираем скрытие описания, если оно мешает */
@media (max-width: 720px) {
}

/* ============================================
   ТО ЖЕ САМОЕ ДЛЯ ПК (чуть больше размеры)
   ============================================ */
@media (min-width: 721px) {
}

/* ============================================
   ТО ЖЕ САМОЕ ДЛЯ ПК (пропорционально больше)
   ============================================ */
@media (min-width: 721px) {
}

/* ============================================
   АДАПТАЦИЯ ДЛЯ ПК
   ============================================ */
@media (min-width: 721px) {
}

/* Базовые стили карточек (возвращены) */
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.news-card { display: flex; flex-direction: column; background: #fff; border-radius: 16px; border: 1px solid #e2e8f0; overflow: hidden; text-decoration: none; }
.news-card img { width: 100%; height: 140px; object-fit: cover; flex-shrink: 0; }
.news-card__body { padding: 12px; display: flex; flex-direction: column; flex: 1 1 auto; }
.news-card h3 { font-size: 15px; line-height: 20px; margin: 0 0 8px 0; color: #0f172a; }
.news-card .meta { font-size: 12px; color: #64748b; margin-bottom: 12px; }
.news-card__footer { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid #f1f5f9; }
.news-card p { display: none; }
@media (min-width: 721px) {
    .news-grid { gap: 24px; }
    .news-card img { height: 240px; }
    .news-card__body { padding: 20px; }
    .news-card h3 { font-size: 20px; line-height: 28px; }
    .news-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
}

/* ============================================
   ОТСТУПЫ В ПРОСМОТРЕ ОДНОГО УВЕДОМЛЕНИЯ
   ============================================ */

/* Карточка одного уведомления */
.notification-page .account-card,
.notification-card--single,
.single-notification {
    padding: 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

/* Дата уведомления — отделяем отступом */
.notification-page .meta,
.notification-page time,
.notification-page .notification-date,
.single-notification .meta {
    margin-top: 8px !important;
    margin-bottom: 12px !important;
    display: block !important;
    color: #94a3b8 !important;
    font-size: 13px !important;
}

/* Заголовок уведомления */
.notification-page h1,
.notification-page h2 {
    margin-bottom: 12px !important;
}

/* Текст уведомления */
.notification-page p,
.single-notification p {
    margin: 0 0 16px 0 !important;
    line-height: 1.6 !important;
    color: #334155 !important;
}

/* Кнопка "Назад" или действия — отступ сверху */
.notification-page .btn,
.single-notification .btn {
    margin-top: 16px !important;
    display: inline-flex !important;
    align-self: flex-start !important;
}

/* ============================================
   ОТСТУП НА СТРАНИЦЕ ОДНОГО УВЕДОМЛЕНИЯ
   ============================================ */

/* Отступ снизу для кнопки "Все уведомления" или "Назад" */
.notification-page .container > a,
.notification-page .container > .text-link,
.notification-page .back-link {
    margin-bottom: 24px !important;
    display: inline-block !important;
}

/* Отступ сверху для самой карточки с уведомлением */
.notification-page .account-card,
.notification-page .notification-card,
.notification-page .admin-card {
    margin-top: 24px !important;
}

/* ============================================
   ТОЧНЫЙ ОТСТУП В ПРОСМОТРЕ ОДНОГО УВЕДОМЛЕНИЯ
   ============================================ */

/* Кнопка "Все уведомления" (назад) */
.notification-detail-wrap .back-link {
    display: inline-block !important;
    margin-bottom: 24px !important; /* Вот он, отступ между кнопкой и карточкой */
    color: #2563eb !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    font-size: 14px !important;
}

/* Сама карточка уведомления */
.notification-detail {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important; /* Отступ между заголовком, датой и текстом */
    padding: 24px !important;
}

/* Дата уведомления */
.notification-detail__meta {
    color: #94a3b8 !important;
    font-size: 13px !important;
}

/* Текст уведомления */
.notification-detail__body {
    line-height: 1.6 !important;
    color: #334155 !important;
    font-size: 15px !important;
}


/* ============================================
   ИДЕАЛЬНОЕ ВЫРАВНИВАНИЕ НОВОСТЕЙ (FLEXBOX)
   ============================================ */

/* 1. Сетка растягивает все карточки в ряду до одной высоты */
.news-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    align-items: stretch !important; 
}

/* 2. Сама карточка — это flex-колонка */
.news-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    text-decoration: none !important;
    background: #fff !important;
    border-radius: 16px !important;
    border: 1px solid #e2e8f0 !important;
    overflow: hidden !important;
}

/* 3. Картинка фиксированной высоты */
.news-card img, .news-card__img {
    width: 100% !important;
    height: 160px !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
    display: block !important;
}

/* 4. Тело карточки растягивается на всё свободное место */
.news-card__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important; 
    padding: 12px !important;
}

/* 5. Заголовок и мета-данные (без фиксированных высот, чтобы не было пустых дыр) */
.news-card h3 {
    margin: 0 0 8px 0 !important;
    font-size: 15px !important;
    line-height: 20px !important;
    color: #0f172a !important;
    flex-shrink: 0 !important;
}

.news-card .meta {
    margin: 0 0 12px 0 !important;
    font-size: 12px !important;
    color: #64748b !important;
    flex-shrink: 0 !important;
}

/* 6. ГЛАВНАЯ МАГИЯ: Футер всегда прижат к низу */
.news-card__footer {
    margin-top: auto !important; /* Отталкивает блок вниз, заполняя пустоту */
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding-top: 12px !important;
    border-top: 1px solid #f1f5f9 !important;
    flex-shrink: 0 !important;
    width: 100% !important;
}

.news-card__footer > * {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    font-size: 12px !important;
}

/* 7. Прячем описание на мобилке */
.news-card p { display: none !important; }

/* ============================================
   ПК ВЕРСИЯ (То же самое, но крупнее)
   ============================================ */
@media (min-width: 721px) {
    .news-grid { gap: 24px !important; }
    .news-card img, .news-card__img { height: 240px !important; }
    .news-card__body { padding: 20px !important; }
    .news-card h3 { font-size: 20px !important; line-height: 28px !important; margin-bottom: 12px !important; }
    .news-card .meta { font-size: 14px !important; margin-bottom: 16px !important; }
    
    .news-card p {
        display: -webkit-box !important;
        -webkit-line-clamp: 3 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
        font-size: 15px !important;
        line-height: 22px !important;
        color: #475569 !important;
        margin-bottom: 16px !important;
    }
    .news-card__footer > * { font-size: 14px !important; }
}

/* 1. Растягиваем карточки на всю высоту ряда */
.news-grid {
    align-items: stretch !important;
}
.news-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}
.news-card__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}

/* 2. Резервируем пустое место под город (даже если его нет) */
.news-card .meta {
    min-height: 42px !important; /* Место под две строки */
    flex-shrink: 0 !important;
}

/* 3. Прижимаем кнопку "Читать новость" к самому низу карточки */
.news-card__footer {
    margin-top: auto !important;
}


/* ============================================
   ИДЕАЛЬНОЕ ВЫРАВНИВАНИЕ КАРТОЧЕК (ТОЧНЫЕ КЛАССЫ)
   ============================================ */

/* 1. Сетка растягивает карточки на одну высоту */
.news-grid {
    align-items: stretch !important;
}

/* 2. Карточка становится флекс-колонкой */
.news-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

/* 3. Тело карточки занимает всё свободное место */
.news-card__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    height: 100% !important;
}

/* 4. Блок с датой и городом (РЕЗЕРВИРУЕМ МЕСТО) */
.public-meta {
    min-height: 24px !important; /* Если города нет, пустое место сохранится */
    margin-bottom: 8px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

/* 5. Блок с просмотрами и кнопкой (ВСЕГДА ВНИЗУ) */
.card-bottom-meta {
    margin-top: auto !important; /* Вот та самая магия прижатия */
    padding-top: 12px !important;
    border-top: 1px solid #f1f5f9 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* 6. Заголовок и описание (чтобы не ломали флекс) */
.news-card h3 {
    margin: 0 0 8px 0 !important;
    flex-shrink: 0 !important;
}
.news-card p {
    margin: 0 0 12px 0 !important;
    flex-shrink: 0 !important;
}


/* Фикс заголовка Барахолки */
.page-title.market-title-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
}
.page-title.market-title-row .btn {
    white-space: nowrap !important; /* Чтобы текст кнопки не переносился на 2 строки */
    width: auto !important; /* Убираем растягивание на всю ширину */
}


/* Финальный фикс выравнивания кнопки в Барахолке (по верхнему краю) */
.page-title.market-title-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important; /* Выравниваем по верхнему краю, как в новостях */
    flex-wrap: wrap !important;
    gap: 16px !important;
}
.page-title.market-title-row .btn {
    white-space: nowrap !important;
    width: auto !important;
    margin-top: 4px !important; /* Легкий отступ, чтобы кнопка смотрелась ровно на уровне H1 */
}


/* Жесткое выравнивание заголовка и кнопки в одну линию */
.page-title {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
}
.page-title .btn {
    width: auto !important; /* Кнопка не растягивается */
    flex-shrink: 0 !important;
}

/* ============================================
   СОВРЕМЕННЫЙ ДИЗАЙН ФИЛЬТРОВ (БАРАХОЛКА)
   ============================================ */

.market-filters-wrapper {
    background: #fff;
    border-radius: 20px;
    padding: 16px;
    margin-bottom: 24px;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05);
    border: 1px solid #e2e8f0;
}

/* Горизонтальный скролл для категорий */
.filter-chips-scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 12px;
    margin-bottom: 12px;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE */
}
.filter-chips-scroll::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

/* Таблетки-категории */
.filter-chip {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.2s;
}
.filter-chip:active {
    transform: scale(0.95);
}
.filter-chip.active {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

/* Нижняя строка с ценой и кнопкой */
.filter-bottom-row {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

/* Поля ввода цены */
.price-inputs {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 4px 12px;
    flex: 1;
}
.price-input {
    border: none;
    background: transparent;
    width: 100%;
    height: 36px;
    font-size: 14px;
    color: #0f172a;
    outline: none;
}
.price-input::placeholder {
    color: #94a3b8;
}
.price-dash {
    color: #cbd5e1;
}

/* Кнопка "Применить" */
.btn-apply {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #0f172a;
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 0 20px;
    height: 46px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.btn-apply:active {
    background: #1e293b;
}
.btn-apply svg {
    flex-shrink: 0;
}

/* Кнопка "Фильтры" рядом с поиском */



/* Затемнение на весь экран */

.filters-modal.active {
    display: flex;
    opacity: 1;
}

/* Сама шторка */

.filters-modal.active 

/* Заголовок шторки */
.filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.filters-header h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: #0f172a;
}
.filters-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    border: none;
    font-size: 22px;
    line-height: 1;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

/* 1. Выравниваем поиск и кнопку фильтров в одну линию */





/* 2. Фикс шторки (чтобы кнопка не уезжала за экран) */

.filters-modal.active 

/* 3. Красивое пространство внутри шторки */
.filter-chips-scroll {
    padding-bottom: 16px !important;
    margin-bottom: 16px !important;
}
.price-inputs {
    height: 52px !important;
    border-radius: 12px !important;
}
.btn-apply {
    height: 52px !important;
    border-radius: 12px !important;
    margin-bottom: 10px !important;
}

/* 1. Тулбар: поиск слева, кнопка справа */


/* Поиск занимает всё свободное место */



/* Кнопка "Фильтры" больше не растягивается на весь экран */


/* 2. Фикс шторки (чтобы кнопка не уходила под меню) */


/* Поднимаем шторку выше нижнего меню */


/* Прячем нижнее меню, когда открыта шторка (опционально, чтобы не мешало) */
body:has(.filters-modal.active) .mobile-nav {
    z-index: 1 !important;
}

/* 1. Строка поиска и кнопка "Фильтры" */






/* 2. Фикс шторки (убираем дыру снизу) */


/* 3. Кнопки в шторке (Сбросить и Показать) */
.filters-actions {
    display: flex !important;
    gap: 12px !important;
    margin-top: 24px !important;
    width: 100% !important;
}

.btn-reset {
    flex: 1 !important;
    height: 52px !important;
    border-radius: 12px !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    border: none !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    cursor: pointer !important;
}

.btn-apply {
    flex: 2 !important; /* Кнопка "Показать" чуть шире */
    height: 52px !important;
    border-radius: 12px !important;
    background: #0f172a !important;
    color: #fff !important;
    border: none !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* 1. Убиваем зум на iOS (шрифт 16px) */


/* 2. Красивое выравнивание иконки, текста и кнопки */






/* 3. Стильная кнопка поиска внутри поля */




/* Иконка лупы — абсолютно слева */


/* Инпут с отступом слева под иконку и справа под кнопку */


/* Кнопка поиска справа */



/* Отступ слева для текста */
    height: 52px !important;
    border-radius: 14px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    overflow: hidden !important;
}



/* Кнопка поиска справа */


/* Принудительно делаем курсор ярким и текст темным */
input[type="text"],
input[type="search"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="url"],
textarea,
select,
[contenteditable="true"] {
    caret-color: #2563eb !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    opacity: 1 !important;
    -webkit-opacity: 1 !important;
    text-shadow: none !important;
}

/* Плейсхолдер (серый текст до ввода) */
input::placeholder,
textarea::placeholder {
    color: #94a3b8 !important;
    -webkit-text-fill-color: #94a3b8 !important;
    opacity: 1 !important;
}

/* Поля цены в фильтрах (там может быть свой стиль) */
.price-input {
    caret-color: #2563eb !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
}

/* Поле поиска */


/* Плейсхолдеры (серый текст) */
.form-card input::placeholder,
.form-card textarea::placeholder,
.field input::placeholder,
.field textarea::placeholder {
    color: #94a3b8 !important;
    -webkit-text-fill-color: #94a3b8 !important;
    opacity: 1 !important;
}


/* Переключатель (Тумблер) */




input:checked + 
input:checked + 


/* Темно-синий фон */
    color: #f8fafc !important;
}

/* Фоны карточек, шапки и меню */
body.dark-theme .header, 
body.dark-theme .mobile-nav, 
body.dark-theme .profile-card, 
body.dark-theme .account-card,
body.dark-theme 

/* Текст */
body.dark-theme h1, 
body.dark-theme h2, 
body.dark-theme h3, 
body.dark-theme strong, 
body.dark-theme 

/* Вторичный текст */
body.dark-theme .meta, 
body.dark-theme p, 
body.dark-theme .account-row span,
body.dark-theme .filter-chip {
    color: #94a3b8 !important;
}

/* Поля ввода и поиск */
body.dark-theme input, 
body.dark-theme textarea, 
body.dark-theme select,
body.dark-theme 
body.dark-theme input::placeholder,
body.dark-theme textarea::placeholder {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
}

/* Активные элементы (синие кнопки, чипсы) */
body.dark-theme .filter-chip.active,
body.dark-theme .btn-primary {
    background-color: #3b82f6 !important;
    color: #fff !important;
}

/* Кнопка выхода/удаления */
body.dark-theme .logout-link,
body.dark-theme 

/* Иконки */
body.dark-theme .icon-btn .icon,
body.dark-theme .nav-icon,
body.dark-theme 
body.dark-theme .nav-add-icon {
    fill: #fff !important;
}

/* Разделители */
body.dark-theme 


/* Фон всего документа */
html.dark-theme, 
body.dark-theme {
    background-color: #0b1120 !important;
    color: #f8fafc !important;
}

/* Прозрачные обертки */
body.dark-theme .page, 
body.dark-theme .container {
    background-color: transparent !important;
}

/* Принудительно красим ВСЕ карточки и блоки в темный */
body.dark-theme .news-card, 
body.dark-theme .listing-card, 
body.dark-theme .profile-card, 
body.dark-theme .account-card, 
body.dark-theme .market-filters-wrapper, 
body.dark-theme 

/* Текст внутри темных блоков */
body.dark-theme h1, 
body.dark-theme h2, 
body.dark-theme h3, 
body.dark-theme h4,
body.dark-theme strong, 
body.dark-theme .price,
body.dark-theme 

/* Вторичный текст */
body.dark-theme p, 
body.dark-theme .meta, 
body.dark-theme .public-meta,
body.dark-theme .account-row span,
body.dark-theme small {
    color: #94a3b8 !important;
}

/* Поля ввода, поиск и фильтры */
body.dark-theme input, 
body.dark-theme textarea, 
body.dark-theme select,
body.dark-theme 
body.dark-theme input::placeholder,
body.dark-theme textarea::placeholder {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
}

/* Активные кнопки */
body.dark-theme .filter-chip.active,
body.dark-theme .btn-primary {
    background-color: #3b82f6 !important;
    color: #fff !important;
}

/* Иконки в меню */
body.dark-theme .nav-icon,
body.dark-theme .icon-btn .icon {
    stroke: #cbd5e1 !important;
}
body.dark-theme .nav-add-icon {
    fill: #fff !important;
}

/* Разделители */
body.dark-theme 


/* Контейнер для кнопки всегда видимый */
div[style*="border:2px dashed"] {
    display: block !important;
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #f8fafc !important;
    border: 2px dashed #cbd5e1 !important;
    border-radius: 12px !important;
    height: 80px !important;
    width: 100% !important;
    cursor: pointer !important;
}

/* Иконка и текст внутри кнопки */
div[style*="border:2px dashed"] span {
    color: #1e293b !important;
    font-weight: 600 !important;
    font-size: 15px !important;
}
div[style*="border:2px dashed"] svg {
    color: #2563eb !important;
    width: 24px !important;
    height: 24px !important;
}

/* Сам инпут (прозрачный, но кликабельный) всегда сверху */
/* Прозрачный file input ТОЛЬКО внутри .photo-upload (публичная форма) */
.photo-upload input[type="file"],
.upload-area input[type="file"],
.file-upload input[type="file"] {
    opacity: 0 !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important;
    cursor: pointer !important;
    z-index: 20 !important;
    background: transparent !important;
    border: none !important;
}

/* Стили для ТЕМНОЙ темы кнопки загрузки */
body.dark-theme div[style*="border:2px dashed"] {
    background: #0f172a !important;
    border-color: #334155 !important;
}
body.dark-theme div[style*="border:2px dashed"] span {
    color: #f8fafc !important;
}
body.dark-theme div[style*="border:2px dashed"] svg {
    color: #60a5fa !important;
}

/* Шапка */
body.dark-mode .header {
    background-color: #1e293b !important;
    border-bottom: 1px solid #334155 !important;
}
body.dark-mode .header__actions .icon-btn,
body.dark-mode .profile-chip {
    background: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}

/* Главный баннер */
body.dark-mode .clean-intro {
    background: #1e293b !important;
    border-color: #334155 !important;
}
body.dark-mode .clean-intro h1,
body.dark-mode .clean-intro p {
    color: #f8fafc !important;
}

/* Быстрые кнопки (Новости, Барахолка и т.д.) */
body.dark-mode .quick-card {
    background: #1e293b !important;
    border-color: #334155 !important;
}
body.dark-mode .quick-card h3,
body.dark-mode .quick-card p {
    color: #f8fafc !important;
}

/* Карточки новостей */
body.dark-mode .news-card {
    background: #1e293b !important;
    border-color: #334155 !important;
}
body.dark-mode .news-card h3 {
    color: #f8fafc !important;
}
body.dark-mode .news-card .meta {
    color: #94a3b8 !important;
}
body.dark-mode .news-card__footer {
    border-top-color: #334155 !important;
}
body.dark-mode .news-card__footer span {
    color: #94a3b8 !important;
}
body.dark-mode .news-card__footer a {
    color: #60a5fa !important; /* Светло-синий для темной темы */
}

/* Карточки барахолки */
body.dark-mode .listing-card {
    background: #1e293b !important;
    border-color: #334155 !important;
}
body.dark-mode .listing-card h3,
body.dark-mode .listing-card .price {
    color: #f8fafc !important;
}
body.dark-mode .listing-card .meta {
    color: #94a3b8 !important;
}

/* Поля ввода (Поиск, формы) */
body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select,
body.dark-mode .search-bar input {
    background: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
    color: #64748b !important;
}

/* Формы создания и профиля */
body.dark-mode .form-card,
body.dark-mode .account-card,
body.dark-mode .profile-card,
body.dark-mode .menu-list a {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #f8fafc !important;
}
body.dark-mode .menu-list a {
    border-bottom: 1px solid #334155 !important;
}
body.dark-mode .menu-list a:hover {
    background: #334155 !important;
}

/* Подвал сайта */
body.dark-mode .site-footer {
    background: #0f172a !important;
    border-top: 1px solid #334155 !important;
    color: #94a3b8 !important;
}
body.dark-mode .site-footer a,
body.dark-mode .site-footer__links a {
    color: #94a3b8 !important;
}

/* Заголовки на страницах */
body.dark-mode .page-title h1 {
    color: #f8fafc !important;
}
body.dark-mode .page-title p {
    color: #94a3b8 !important;
}

/* Нижнее меню */
body.dark-mode .mobile-nav {
    background: #1e293b !important;
    border-top: 1px solid #334155 !important;
}
body.dark-mode .mobile-nav a {
    color: #94a3b8 !important;
}
body.dark-mode .mobile-nav a.active {
    color: #60a5fa !important;
}

/* 1. Кнопки и панель фильтров в Барахолке */
body.dark-mode 

body.dark-mode .chip {
    background: #1e293b !important;
    border: 1px solid #334155 !important;
    color: #94a3b8 !important;
}

body.dark-mode .chip.active,
body.dark-mode .chip:hover {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
}

/* Кнопка "Фильтры" (если это отдельная кнопка) */
body.dark-mode .filter-btn,
body.dark-mode button[class*="filter"] {
    background: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid #334155 !important;
}

/* 2. Страница настроек и личный кабинет */
body.dark-mode .account-row {
    border-top: 1px solid #334155 !important;
}
body.dark-mode .account-row span,
body.dark-mode .account-card p {
    color: #94a3b8 !important;
}
body.dark-mode .account-row strong {
    color: #f8fafc !important;
}

/* 3. Выпадающие списки (select) в темной теме */
body.dark-mode select {
    background-color: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid #334155 !important;
}
body.dark-mode select option {
    background-color: #1e293b !important;
    color: #f8fafc !important;
}

/* 4. Модальные окна (если фильтры открываются в попапе) */
body.dark-mode .modal-content,
body.dark-mode .filter-modal,
body.dark-mode .confirm-card {
    background: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid #334155 !important;
}
body.dark-mode .modal-content h2,
body.dark-mode .confirm-card h2 {
    color: #f8fafc !important;
}

/* 5. Ссылки в меню настроек (Профиль) */
body.dark-mode .menu-list a {
    color: #f8fafc !important;
    border-bottom: 1px solid #334155 !important;
}
body.dark-mode .menu-list a span {
    color: #64748b !important; /* Стрелочки */
}
body.dark-mode .logout-link {
    color: #f87171 !important;
}

/* Поле поиска растягиваем */


/* Темная тема для чипсов фильтров */
body.dark-mode .filter-chip, 
body.dark-mode .chip {
    background: #1e293b !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
body.dark-mode .filter-chip.active, 
body.dark-mode .chip.active {
    background: #3b82f6 !important;
    color: #fff !important;
    border-color: #3b82f6 !important;
}

/* Темная тема для кнопки "Удалить аккаунт" */
body.dark-mode .text-danger, 
body.dark-mode a[href*="delete"] {
    color: #f87171 !important;
}

/* Шапка и нижнее меню */
body.dark-mode .header,
body.dark-mode .mobile-nav {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

/* Все карточки (новости, барахолка, профиль, формы) */
body.dark-mode .news-card,
body.dark-mode .listing-card,
body.dark-mode .account-card,
body.dark-mode .profile-card,
body.dark-mode .form-card,
body.dark-mode .quick-card,
body.dark-mode .menu-list,
body.dark-mode .clean-intro,
body.dark-mode .site-footer {
    background-color: #1e293b !important;
    border-color: #334155 !important;
    box-shadow: none !important;
}

/* Все заголовки и жирный текст */
body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode strong,
body.dark-mode .price,
body.dark-mode .menu-list a {
    color: #f8fafc !important;
}

/* Обычный текст, параграфы, даты */
body.dark-mode p,
body.dark-mode span,
body.dark-mode div,
body.dark-mode .meta {
    color: #cbd5e1 !important;
}

/* Поля ввода (поиск, формы) */
body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}

/* Кнопки-иконки в шапке (лупа, колокольчик) */
body.dark-mode .header__actions .icon-btn,
body.dark-mode .profile-chip {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}

/* Линии разделители */
body.dark-mode .news-card__footer,
body.dark-mode .menu-list a {
    border-color: #334155 !important;
}

/* Синие ссылки (Читать новость) делаем ярче */
body.dark-mode .news-card__footer a,
body.dark-mode .text-link {
    color: #60a5fa !important;
}

/* Кнопка "Удалить аккаунт" */
body.dark-mode .text-danger,
body.dark-mode a[href*="delete"] {
    color: #f87171 !important;
}


/* ============================================
   ИДЕАЛЬНЫЕ ДИАЛОГИ В ТЕМНОЙ ТЕМЕ
   ============================================ */

/* --- 1. Модалка фильтров в Барахолке --- */
body.dark-mode 
body.dark-mode .filters-header h3 {
    color: #f8fafc !important;
}
body.dark-mode .filters-close {
    color: #94a3b8 !important;
}
body.dark-mode .filter-chip {
    background-color: #0f172a !important;
    color: #cbd5e1 !important;
    border-color: #334155 !important;
}
body.dark-mode .filter-chip.active {
    background-color: #2563eb !important;
    color: #ffffff !important;
    border-color: #2563eb !important;
}
body.dark-mode .price-input {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
body.dark-mode .price-dash {
    color: #94a3b8 !important;
}
body.dark-mode .filters-actions button {
    background-color: #334155 !important;
    color: #f8fafc !important;
}
body.dark-mode .filters-actions button.primary,
body.dark-mode .filters-actions button[type="submit"],
body.dark-mode .filters-actions button:last-child {
    background-color: #2563eb !important;
    color: #fff !important;
}

/* --- 2. Шторка "Что добавить?" (Плюсик) --- */
body.dark-mode .add-choice-sheet {
    background-color: #1e293b !important;
}
body.dark-mode .add-choice-header h3 {
    color: #f8fafc !important;
}
body.dark-mode .add-choice-close {
    background-color: #0f172a !important;
    color: #94a3b8 !important;
}
body.dark-mode .add-option-btn {
    background-color: #0f172a !important;
    border-color: #334155 !important;
}
body.dark-mode .add-option-title {
    color: #f8fafc !important;
}
body.dark-mode .add-option-desc {
    color: #94a3b8 !important;
}

/* --- 3. Галерея изображений --- */
body.dark-mode 

/* --- 4. Строка поиска в Барахолке (восстановление) --- */
body.dark-mode 

/* ============================================
   ВОССТАНОВЛЕНИЕ СТИЛЕЙ ФИЛЬТРОВ (БАРАХОЛКА)
   ============================================ */

/* Кнопка "Фильтры" рядом с поиском */


/* Затемненный фон */

.filters-modal.active,
.filters-modal.is-open {
    display: flex !important;
}

/* Сама шторка */


@keyframes slideUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

/* Шапка шторки */
.filters-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 20px !important;
}
.filters-header h3 {
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
}
.filters-close {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: #f1f5f9 !important;
    border: none !important;
    font-size: 20px !important;
    color: #64748b !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
}

/* Чипсы (категории) */
.filter-chips-scroll {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
}
.filter-chip {
    padding: 8px 14px !important;
    border-radius: 999px !important;
    background: #f1f5f9 !important;
    border: 1px solid transparent !important;
    color: #334155 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}
.filter-chip.active {
    background: #2563eb !important;
    color: #fff !important;
    border-color: #2563eb !important;
}

/* Поля цены */
.price-inputs {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
.price-input {
    flex: 1 !important;
    height: 44px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    border: 1px solid #e2e8f0 !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 14px !important;
}
.price-dash {
    color: #94a3b8 !important;
    font-weight: 600 !important;
}

/* Кнопки снизу */
.filters-actions {
    display: flex !important;
    gap: 12px !important;
    margin-top: 20px !important;
}
.filters-actions button {
    flex: 1 !important;
    height: 48px !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}
.filters-actions button.primary,
.filters-actions button[type="submit"] {
    background: #2563eb !important;
    color: #fff !important;
    border-color: #2563eb !important;
}

/* ============================================
   ВОССТАНОВЛЕНИЕ СТИЛЕЙ НАСТРОЕК
   ============================================ */









/* Переключатель (Switch) */






body.dark-mode .custom-dialog-header { background: #1e293b; }
body.dark-mode .custom-dialog-header h3 { color: #f8fafc; }
body.dark-mode .custom-dialog-close { background: #334155; color: #cbd5e1; }

/* Красивый крестик закрытия */


/* Строка настроек */


/* Строка поиска в шапке */




/* Темная тема для переключателя */
body.dark-mode 
body.dark-mode 
body.dark-mode input:checked + 
body.dark-mode 
body.dark-mode 

/* Не сжимается */
}







input:checked + 

input:checked + 

/* 1. Затемненный фон для шторки настроек */


/* Когда шторка открыта (класс active или is-open) */


/* 2. Сама белая карточка настроек */


/* Анимация выезда */




/* 4. Пункты настроек */




/* 5. Починка фильтров в барахолке (чтобы не сжимались) */
.filter-chips,
.chips,
.market-filters {
    display: flex !important;
    flex-wrap: wrap !important; /* Разрешаем перенос на новую строку */
    gap: 8px !important;
    margin-bottom: 16px !important;
    width: 100% !important;
}

/* Кнопки фильтров */
.filter-chip,
.chip {
    padding: 8px 16px !important;
    border-radius: 20px !important;
    background: #f1f5f9 !important;
    white-space: nowrap !important; /* Текст в одну строку */
    flex-shrink: 0 !important;
}

/* Общий фон для шторок */
.filters-modal, 

/* Когда шторка активна */
.filters-modal.is-open, .filters-modal.active,


/* Сама белая карточка */
.filters-sheet, 

/* Плавный выезд */
.filters-modal.is-open .filters-sheet,


.filters-close, 

/* --- НАСТРОЙКИ --- */



/* --- ФИЛЬТРЫ --- */
.filter-chips-scroll {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 20px !important;
    width: 100% !important;
}

.filter-chip {
    padding: 8px 16px !important;
    border-radius: 20px !important;
    background: #f1f5f9 !important;
    border: 1px solid transparent !important;
    font-size: 14px !important;
    color: #0f172a !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    font-weight: 500 !important;
}

.filter-chip.active {
    background: #2563eb !important;
    color: #ffffff !important;
}


/* Общий фон (затемнение) */


/* Когда шторка открыта */


/* Сама белая карточка */


/* Анимация выезда */


/* Шапка шторки (Заголовок и Крестик) */




/* Красивая кнопка закрытия (крестик) */


/* Настройки - элементы списка */



/* Переключатель темы (iOS) */







/* Фильтры - чипсы */






/* Поиск в Барахолке */






/* 1. Затемнение и центрирование снизу */


/* Показываем при наличии класса */


/* 2. Сама белая карточка */


/* 3. Шапка с заголовком и крестиком */




/* 4. Элементы настроек */



/* 5. Чипсы фильтров (перенос строк) */
.filter-chips-scroll {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}
.filter-chip {
    padding: 8px 16px;
    border-radius: 20px;
    background: #f1f5f9;
    border: 1px solid transparent;
    font-size: 14px;
    color: #0f172a;
    cursor: pointer;
}
.filter-chip.active {
    background: #2563eb;
    color: #fff;
}

/* 6. Поле поиска в Барахолке */




/* 7. Переключатель темы */








/* Скрыто по умолчанию */
    align-items: flex-end !important;
    justify-content: center !important;
    backdrop-filter: blur(4px) !important;
}

/* Класс, который будет включать показ */
#settingsModal.show-modal {
    display: flex !important;
}

#settingsModal 

#settingsModal.show-modal 

#settingsModal 

#settingsModal 

#settingsModal 

#settingsModal 
#settingsModal 



/* Защита от зума на iOS */
    color: #0f172a !important;
    padding: 0 !important;
    margin: 0 !important;
}








/* === FINAL: FILTERS MODAL === */










/* === FINAL: SETTINGS MODAL === */










/* === FINAL: SWITCH === */
html body 
html body 
html body 
html body 
html body 
html body 

/* === FINAL: MARKET SEARCH === */







/* Защита от зума */
    color: #0f172a !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
}








/* === ИДЕАЛЬНЫЙ CSS === */
#settingsModal, 
#settingsModal[style*="display: flex"], 
#settingsModal 
#settingsModal 




/* ПОИСК (Серая лупа, как было) */





/* Выравниваем высоту фильтров и поиска */



/* --- ШТОРКИ --- */



.filters-sheet { min-height: 40vh !important; /* Фикс маленького окна */ }






/* --- НАСТРОЙКИ --- */



/* --- ФИЛЬТРЫ --- */
.filter-chips-scroll { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-bottom: 20px !important; width: 100% !important; }
.filter-chip { padding: 10px 16px !important; border-radius: 20px !important; background: #f1f5f9 !important; border: 1px solid transparent !important; font-size: 14px !important; color: #0f172a !important; cursor: pointer !important; white-space: nowrap !important; flex-shrink: 0 !important; }
.filter-chip.active { background: #2563eb !important; color: #fff !important; }

/* --- ПОИСК И ФИЛЬТРЫ (ВЫРАВНИВАНИЕ) --- */





/* Кнопка Фильтры на одной высоте с поиском */
button[onclick*="filtersModal"] { height: 52px !important; border-radius: 14px !important; border: 1px solid #e2e8f0 !important; background: #f1f5f9 !important; padding: 0 16px !important; display: flex !important; align-items: center !important; justify-content: center !important; font-weight: 600 !important; color: #0f172a !important; flex-shrink: 0 !important; }

/* Тумблер */








/* ПОИСК */






/* Убеждаемся, что контейнер с чипсами не сжимается */


/* Чипсы видны и не сжимаются */


/* Стилизуем скроллбар, чтобы было красиво */




/* Внутренности шторок */
html body 

/* Один крестик */
html body 




/* ============================================
   ШТОРКА НАСТРОЕК (ПО ОБРАЗЦУ "ЧТО ДОБАВИТЬ")
   ============================================ */











/* Переключатель темы */







/* ============================================
   ШТОРКА ФИЛЬТРОВ (ПО ОБРАЗЦУ "ЧТО ДОБАВИТЬ")
   ============================================ */
.filters-modal {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.6); z-index: 9999;
    display: none; align-items: flex-end; justify-content: center;
    opacity: 0; transition: opacity 0.3s ease;
    backdrop-filter: blur(2px);
}
.filters-modal.active {
    display: flex; opacity: 1;
}
.filters-sheet {
    background: #fff; width: 100%; max-width: 500px;
    border-radius: 24px 24px 0 0; padding: 20px;
    transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    padding-bottom: calc(30px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    max-height: 85vh; overflow-y: auto;
}
.filters-modal.active .filters-sheet {
    transform: translateY(0);
}
.filters-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 20px;
}
.filters-header h3 {
    margin: 0; font-size: 18px; font-weight: 800; color: #0f172a;
}
.filters-close {
    background: #f1f5f9; border: none; width: 32px; height: 32px;
    border-radius: 50%; font-size: 20px; color: #64748b;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; padding: 0;
}
.filter-chips-scroll {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px;
}
.filter-chip {
    padding: 10px 16px; border-radius: 20px; background: #f1f5f9;
    border: none; font-size: 14px; color: #0f172a; cursor: pointer;
    font-weight: 500;
}
.filter-chip.active { background: #2563eb; color: #fff; }

/* 1. Категории (чипсы) — делаем горизонтальную прокрутку */
.chips, 
.filters-chips,


/* Скрываем скроллбар для красоты */
.chips::-webkit-scrollbar,
.filters-chips::-webkit-scrollbar {
    display: none;
}

/* Запрещаем чипсам сжиматься */
.chips > *, 
.filters-chips > * {
    flex-shrink: 0 !important;
}

/* 2. Поля ввода цены — ставим в один ряд и не даем вылезти */
.price-range,
.price-inputs,
.filter-price {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
}

.price-range input,
.price-inputs input,
.filter-price input {
    flex: 1 1 0% !important;
    width: 100% !important;
    min-width: 0 !important; /* Это не дает инпуту вылезти за границы */
    box-sizing: border-box !important;
}

/* 3. Кнопка "Показать результаты" — возвращаем синий цвет */
button[type="submit"].filter-submit,
.filter-actions .btn-primary,
.filter-panel .btn-primary {
    background: #2563eb !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    cursor: pointer !important;
    width: 100% !important; /* На всю ширину для удобства */
    display: flex !important;
    justify-content: center !important;
}

/* 4. Кнопка "Сбросить" — делаем аккуратной серой */
button[type="reset"].filter-reset,
.filter-actions .btn-light {
    background: #f1f5f9 !important;
    color: #475569 !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    cursor: pointer !important;
}

/* 5. Прячем дубликат фильтров (второй маленький) */
/* Если у вас есть два блока с классом filter-panel, скрываем второй */
.filter-panel:nth-of-type(2) {
    display: none !important;
}

/* Затемненный фон */



/* Сама панель фильтров */
#filterSheet {
    position: fixed !important;
    bottom: -100% !important; /* Изначально спрятана внизу */
    left: 0 !important; right: 0 !important;
    background: #ffffff !important;
    z-index: 9999 !important;
    padding: 24px 20px !important;
    border-radius: 24px 24px 0 0 !important;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.1) !important;
    transition: bottom 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    max-height: 85vh !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
}
#filterSheet.active { bottom: 0 !important; }

/* Кнопка-крестик закрытия */
#filterCloseBtn {
    position: absolute; top: 16px; right: 16px;
    width: 32px; height: 32px; border-radius: 50%;
    background: #f1f5f9; border: none; font-size: 20px; color: #64748b;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    z-index: 10;
}

/* Прячем дубликат (второй маленький фильтр), если он есть */
#filterSheet ~ div:has(button:contains("Показать результаты")) {
    display: none !important;
}

/* Цена в один ряд */
#filterSheet input[placeholder*="Цена"] {
    flex: 1; width: 100%; min-width: 0;
}

/* Красивая синяя кнопка */
#filterSheet button:contains("Показать результаты"),
#filterSheet .btn-primary {
    background: #2563eb !important; color: #fff !important;
    border-radius: 12px !important; padding: 12px !important;
    font-weight: 600 !important; width: 100% !important;
    margin-top: 16px !important;
}

/* Темная тема для шторки */
body.dark-mode #filterSheet { background: #1e293b !important; color: #fff !important; }
body.dark-mode #filterCloseBtn { background: #334155; color: #fff; }

/* Категории (чипсы) в одну строку с прокруткой */
.filter-chips {
    display: flex !important; flex-wrap: nowrap !important;
    overflow-x: auto !important; gap: 8px !important;
    padding-bottom: 8px !important; margin-bottom: 16px !important;
    -webkit-overflow-scrolling: touch;
}
.filter-chips::-webkit-scrollbar { display: none; }
.filter-chip { flex-shrink: 0 !important; }

/* Цена в один ряд */
.price-inputs { display: flex !important; align-items: center !important; gap: 8px !important; width: 100% !important; }
.price-inputs input { flex: 1 1 0% !important; min-width: 0 !important; margin: 0 !important; box-sizing: border-box !important; }

/* Синяя кнопка "Применить" */
#applyFilters {
    background: #2563eb !important; color: #ffffff !important;
    border: none !important; border-radius: 12px !important;
    padding: 14px !important; font-weight: 600 !important; font-size: 16px !important;
    width: 100% !important; cursor: pointer !important;
    display: block !important; margin-top: 16px !important;
}

/* Темная тема для шторки */
body.dark-mode .filters-sheet { background: #1e293b !important; color: #fff !important; }
body.dark-mode .filters-close-btn { background: #334155; color: #fff; }
body.dark-mode .filter-chip { background: #334155 !important; color: #fff !important; border-color: #475569 !important; }
body.dark-mode .filter-chip.active { background: #3b82f6 !important; border-color: #3b82f6 !important; }

/* Затемненный фон */



/* Сама шторка */



/* Категории (чипсы) в строку с прокруткой */




/* Цена в один ряд */



/* Синяя кнопка Применить */


/* Темная тема */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 

/* Красивое поле поиска */
input[placeholder*="Поиск объявлений"] {
    border: 1px solid #e2e8f0 !important; border-radius: 16px !important;
    padding: 14px 20px !important; font-size: 15px !important;
    background: #fff !important; width: 100% !important; outline: none !important;
}

/* Возвращаем настройки в центр */




/* Убираем прозрачные блокировки экрана */


/* Красивое поле поиска */
input[placeholder*="Поиск объявлений"] {
    border: 1px solid #e2e8f0 !important; border-radius: 16px !important;
    padding: 14px 20px !important; font-size: 15px !important;
    background: #fff !important; width: 100% !important; outline: none !important;
}

/* Настройки в центр */
.custom-dialog-content h3, .add-choice-header h3 {
    margin: 0 !important; text-align: center !important; flex: 1;
}


/* ============================================
   КРАСИВЫЕ ФИЛЬТРЫ (ВНУТРИ РОДНОЙ МОДАЛКИ)
   ============================================ */

/* Чипсы листаются вбок */




/* Цена не вылезает за края */



/* Кнопка "Показать" синяя, "Сбросить" серая */



/* Сама шторка внутри */


/* Чипсы листаются вбок */



/* Цена в один ряд */



/* Кнопки */



/* По умолчанию окно скрыто */


/* Когда добавлен класс show-filters — показываем */


/* Сама шторка внутри */


/* Чипсы листаются вбок */




/* Цена в один ряд */



/* Кнопки разных цветов */



/* ============================================
   СТИЛИ ОКНА ФИЛЬТРОВ (БЕЗ ВРЕДА ДЛЯ ПОИСКА)
   ============================================ */




/* Сама шторка */


/* Чипсы листаются вбок */




/* Цена в один ряд */



/* Кнопки разных цветов */



/* Обертка поиска */






/* Кнопка поиска (лупа) */




/* Кнопка Фильтры */




/* Темная тема */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 

/* Модалка (окно фильтров) */






/* Чипсы внутри модалки */




/* Цена в один ряд */



/* Кнопки */



/* Темная тема для модалки */
body.dark-mode 
body.dark-mode 

/* Сама шторка */


/* Чипсы листаются вбок */




/* Цена в один ряд */



/* Кнопки разных цветов */



/* Темная тема для шторки */
body.dark-mode 
body.dark-mode 


/* Бомбовый поиск и кнопка */







/* Фильтры - в точности как окно "Что добавить" */









/* Сама обертка поиска */


/* Поле ввода */




/* Кнопка лупы */




/* Кнопка "Фильтры" */




/* Темная тема для поиска и кнопки */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 


/* Контейнер, в котором они лежат */


/* Обертка поля поиска */


/* Само поле ввода */



/* Кнопка с лупой (СЕРАЯ, как ты просил) */



/* Кнопка "Фильтры" */



/* Темная тема (чтобы было красиво) */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 

/* По умолчанию окно фильтров ВСЕГДА скрыто */

/* Показываем только если добавлен класс active */


/* === БОМБОВЫЙ ПОИСК === */







/* === БОМБОВЫЙ ПОИСК === */









/* === Force hide галереи, если не открыта === */
#tg-gallery:not(.is-open) {
    display: none !important;
}
#tg-gallery:not(.is-open) 


/* === ГАЛЕРЕЯ СКРЫТА, КРЕСТИК НЕ ПОКАЗЫВАЕТСЯ === */
body #tg-gallery:not(.is-open) {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}
body #tg-gallery:not(.is-open) 

/* Если галерея открыта — показываем как надо */
body #tg-gallery.is-open {
    display: flex !important;
    visibility: visible !important;
    height: 100vh !important;
    position: fixed !important;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.95) !important;
    z-index: 999999 !important;
    flex-direction: column !important;
}
body #tg-gallery.is-open 
body #tg-gallery.is-open 


/* ============================================
   МОДАЛКИ DIALOGS.JS (Настройки)
   ============================================ */
.custom-dialog-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.6);
    z-index: 99999;
    align-items: flex-end;
    justify-content: center;
    backdrop-filter: blur(2px);
}
.custom-dialog-overlay.active {
    display: flex;
}
.custom-dialog-sheet {
    background: #fff;
    width: 100%;
    max-width: 500px;
    border-radius: 24px 24px 0 0;
    padding: 24px 20px;
    box-sizing: border-box;
    max-height: 85vh;
    overflow-y: auto;
    position: relative;
}
.custom-dialog-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.custom-dialog-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    text-align: left;
    flex: 1;
}
.custom-dialog-close {
    background: #f1f5f9;
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 20px;
    color: #64748b;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.custom-dialog-content {
    text-align: left;
}


/* ============================================
   МОДАЛКА "ЧТО ДОБАВИТЬ" — ЖЕСТКО СКРЫТА
   ============================================ */
.add-choice-overlay {
    display: none !important;
    position: fixed !important;
    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    background: rgba(15, 23, 42, 0.6) !important;
    z-index: 99999 !important;
    align-items: flex-end !important;
    justify-content: center !important;
    backdrop-filter: blur(2px) !important;
}
.add-choice-overlay.active {
    display: flex !important;
}


/* ============================================
   КРАСИВЫЙ ПОИСК И КНОПКА ФИЛЬТРЫ (визуал)
   ============================================ */

/* Обертка поля поиска */






/* Кнопка лупы (серая) */




/* Кнопка "Фильтры" */
#openFilters {
    height: 56px !important;
    padding: 0 20px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04) !important;
    box-sizing: border-box !important;
}

#openFilters svg {
    stroke: #0f172a !important;
}

/* Тёмная тема */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode #openFilters {
    background: #1e293b !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
body.dark-mode #openFilters svg {
    stroke: #f8fafc !important;
}


/* ============================================
   ПОИСК В БАРАХОЛКЕ (ВИЗУАЛ)
   ============================================ */

/* Обёртка поля */


/* Само поле ввода — кликабельное, с placeholder */




/* Кнопка-лупа — маленькая, справа */
#marketSearchBtn,


#marketSearchBtn svg,


/* Кнопка "Фильтры" */
#openFilters {
    height: 56px !important;
    padding: 0 20px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04) !important;
    box-sizing: border-box !important;
}

#openFilters svg {
    stroke: #0f172a !important;
}

/* Тёмная тема */
body.dark-mode 
body.dark-mode 
body.dark-mode #marketSearchBtn {
    background: #334155 !important;
}
body.dark-mode #marketSearchBtn svg {
    stroke: #cbd5e1 !important;
}
body.dark-mode #openFilters {
    background: #1e293b !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
body.dark-mode #openFilters svg {
    stroke: #f8fafc !important;
}

/* --- Обновление дизайна статьи под эталон --- */
.article {
    max-width: 800px;
    margin: 0 auto;
    background: transparent;
}
.article__hero {
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 24px;
    background: #0f172a;
    display: flex;
    justify-content: center;
    align-items: center;
}
.article__hero img {
    width: 100%;
    max-height: 75vh;
    object-fit: contain;
    display: block;
}
.article__head {
    margin-bottom: 24px;
}
.article h1 {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: -0.5px;
    margin: 0 0 16px 0;
    color: #0f172a;
}
.article__lead {
    font-size: 18px;
    line-height: 1.5;
    color: #334155;
    margin-bottom: 0;
}
.article__text {
    font-size: 17px;
    line-height: 1.7;
    color: #1e293b;
}
.article__text p {
    margin-bottom: 18px;
}
@media (max-width: 720px) {
    .article h1 { font-size: 28px; }
    .article__hero { border-radius: 16px; margin-bottom: 20px; }
    .article__lead { font-size: 16px; }
    .article__text { font-size: 15px; }
}

/* --- Финальные стили карточки статьи (перекрывают старые) --- */
.article {
    max-width: 800px !important;
    margin: 0 auto !important;
    background: #ffffff !important;
    border: 1px solid var(--line) !important;
    border-radius: 26px !important;
    overflow: hidden !important;
    padding: 0 !important;
}
.article__hero {
    background: #0f172a !important;
    margin: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.article__hero img {
    width: 100% !important;
    max-height: 70vh !important;
    object-fit: contain !important;
    display: block !important;
}
.article__head {
    padding: 22px 28px 0 !important;
    margin: 0 !important;
}
.article h1 {
    font-size: 32px !important;
    line-height: 1.15 !important;
    letter-spacing: -0.5px !important;
    margin: 0 0 14px 0 !important;
    color: #0f172a !important;
}
.article__lead {
    font-size: 18px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    color: #334155 !important;
}
.article__text {
    padding: 14px 28px 28px !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    color: #1e293b !important;
}
.article__text p { margin-bottom: 16px !important; }

@media (max-width: 720px) {
    .article { border-radius: 20px !important; }
    .article__head { padding: 18px 20px 0 !important; }
    .article__text { padding: 10px 20px 20px !important; }
    .article h1 { font-size: 26px !important; }
    .article__lead { font-size: 16px !important; }
    .article__text { font-size: 15px !important; }
}

/* --- Фикс зума на мобильных и синяя каретка --- */
@media (max-width: 720px) {
  
}

/* Синяя палочка (каретка) во всех полях ввода */
input,
textarea,
select {
  caret-color: var(--blue, #2563eb);
}

/* Отключаем двойной тап-зум по кнопкам */
.search-clear,

/* --- Тёмная тема: шторка настроек --- */
body.dark-mode #settingsPanel { background: #1e293b !important; color: #e2e8f0; }
body.dark-mode #settingsPanel h3 { color: #f1f5f9 !important; }
body.dark-mode #settingsPanel [style*="color: #0f172a"] { color: #e2e8f0 !important; }
body.dark-mode #settingsPanel [style*="border-bottom: 1px solid #f1f5f9"] { border-bottom-color: #334155 !important; }
body.dark-mode #settingsPanel [style*="background: #f1f5f9"] { background: #334155 !important; }
body.dark-mode #settingsPanel [style*="color: #64748b"] { color: #cbd5e1 !important; }
body.dark-mode #settingsBackdrop { background: rgba(10, 15, 25, 0.65) !important; }

/* Сердце в избранном — цвет контура */

/* Сердце в избранном */
#btn-heart { transition: color .15s ease, transform .15s ease; }
#btn-heart.is-favorite { color: #ef4444 !important; }
#btn-heart.is-favorite svg { fill: #ef4444 !important; stroke: #ef4444 !important; }
#btn-heart:active { transform: scale(0.92); }


/* Даты не должны раздувать панель */
#newsPanel input[type="date"],
#newsPanel input[type="number"],
#newsPanel select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    -webkit-min-logical-width: 0 !important;
}

/* iOS: убираем лишний внутренний padding у date-инпута */
#newsPanel input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}

/* Панель и бэкдроп не дают горизонтальный скролл */
#newsPanel, #newsBackdrop {
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

/* Ничего в шторке не должно превышать ширину экрана */
#newsPanel * {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Пока открыта шторка, не даём странице ездить вбок */
body.sheet-open {
    overflow-x: hidden !important;
}

/* Поля фильтров — flex, чтобы iOS не ломал ширину */
#newsPanel .sheet-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

/* Шторка: даты не должны раздувать */
#newsPanel input[type="date"],
#newsPanel select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* === SEARCH TYPE TOGGLE === */
.search-type-toggle {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: #f1f5f9;
  border-radius: 14px;
  margin: 0 0 20px 0;
}
.search-type-toggle button {
  flex: 1;
  padding: 10px 12px;
  border: none;
  background: transparent;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.search-type-toggle button:hover { color: #0f172a; }

.search-type-toggle button.active {
  background: #1677ff !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25) !important;
}
.search-type-toggle button.active:hover {
  background: #1677ff !important;
  color: #ffffff !important;
}


/* =========================================
   КАРЕТКА (палочка) во всех полях ввода
   ========================================= */
input,
textarea,
select,
input[type="text"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="date"],
input[type="url"],
[contenteditable="true"] {
    caret-color: #1677ff !important;
}

/* На тёмной теме — светлая каретка, чтобы была видна */
body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select,
body.dark-mode [contenteditable="true"] {
    caret-color: #60a5fa !important;
}

/* Safari / iOS: иногда игнорируется без -webkit */
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: #94a3b8;
}

/* ==========================================================
   ЯДЕРНЫЙ ФИКС: лупа в .market-search (market + news)
   Максимальная специфичность + !important на всё
   ========================================================== */
body 
body 
body 
body 
body 
body 

/* =========================================
   СООБЩЕНИЯ — мессенджер-стиль v2
   ========================================= */

.messages-layout {
  position: relative;
}

/* ---- СПИСОК ДИАЛОГОВ ---- */
.dialogs-pane {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20px;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  height: calc(100vh - 200px);
}

.dialogs-head {
  padding: 18px 20px;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
}
.dialogs-head h1 { font-size: 22px; margin: 0; font-weight: 800; letter-spacing: -.3px; }
.dialogs-unread {
  background: #2563eb; color: #fff; border-radius: 12px;
  padding: 3px 10px; font-size: 12px; font-weight: 800;
}

.dialogs-list {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.dialog-item {
  padding: 14px 18px;
  border-bottom: 1px solid #f1f5f9;
  cursor: pointer;
  transition: background .15s;
  display: flex;
  gap: 12px;
  align-items: center;
}
.dialog-item:hover { background: #f8fafc; }
.dialog-item.is-active { background: #eff6ff; }

.dialog-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff; display: grid; place-items: center;
  font-size: 16px; font-weight: 800; flex-shrink: 0; overflow: hidden; position: relative; }
.dialog-body { flex: 1; min-width: 0; }
.dialog-item-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 3px; gap: 8px;
}
.dialog-item-head strong {
  font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dialog-time { font-size: 12px; color: #94a3b8; flex-shrink: 0; }
.dialog-item-title {
  font-size: 12px; color: #64748b; margin-bottom: 3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dialog-item-preview {
  font-size: 13px; color: #475569; display: flex;
  justify-content: space-between; gap: 8px; align-items: center;
}
.dialog-item-preview > .dialog-preview-text {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1;
}
.dialog-unread {
  flex-shrink: 0; background: #2563eb; color: #fff;
  border-radius: 10px; min-width: 20px; height: 20px;
  padding: 0 6px; font-size: 11px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
}

/* ---- ОКНО ЧАТА ---- */
.chat-pane {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20px;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  height: calc(100vh - 200px); position: relative; }

.chat-header {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; border-bottom: 1px solid #f1f5f9;
  background: #fff; flex-shrink: 0;
}
.chat-back {
  width: 38px; height: 38px; border-radius: 10px; border: 0;
  background: #f1f5f9; color: #475569; display: grid; place-items: center;
  cursor: pointer; flex-shrink: 0; transition: background .15s;
}
.chat-back:hover { background: #e2e8f0; }

.chat-header-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.chat-header-info strong {
  font-size: 16px; font-weight: 700;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-listing-title {
  font-size: 12px; color: #2563eb; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px;
}

.chat-messages {
  flex: 1; min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 16px 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #f8fafc;
}

.chat-empty {
  text-align: center; color: #94a3b8; margin: auto;
  padding: 40px 20px; font-size: 14px; line-height: 1.5;
}

.chat-bubble {
  max-width: 78%; align-self: flex-start;
  background: #fff; border-radius: 18px 18px 18px 4px;
  padding: 10px 14px; border: 1px solid #e2e8f0;
  word-wrap: break-word;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.chat-bubble.is-mine {
  align-self: flex-end;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff; border-color: transparent;
  border-radius: 18px 18px 4px 18px;
}
.chat-bubble-body { font-size: 15px; line-height: 1.45; word-break: break-word; }
.chat-bubble-time {
  font-size: 11px; color: #94a3b8; margin-top: 4px; text-align: right;
}
.chat-bubble.is-mine .chat-bubble-time { color: rgba(255,255,255,.75); }

.chat-form {
  display: flex; gap: 8px;
  padding: 10px 12px;
  padding-bottom: calc(30px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #f1f5f9;
  background: #fff; align-items: flex-end; flex-shrink: 0;
}
.chat-form textarea {
  flex: 1; resize: none; min-height: 46px; max-height: 120px;
  padding: 12px 14px; border: 1.5px solid #e2e8f0; border-radius: 14px;
  font-family: inherit; font-size: 16px; outline: none; box-sizing: border-box;
  line-height: 1.4; caret-color: #2563eb; background: #f8fafc;
}
.chat-form textarea:focus { border-color: #2563eb; background: #fff; }
.chat-form button {
  width: 48px; height: 48px; border-radius: 14px; border: 0;
  background: #2563eb; color: #fff; cursor: pointer;
  display: grid; place-items: center; flex-shrink: 0; transition: opacity .15s;
}
.chat-form button:disabled { opacity: .5; }

.empty-state {
  text-align: center; padding: 50px 20px; color: #64748b;
}
.empty-state h3 { font-size: 17px; margin: 0 0 8px; color: #0f172a; }
.empty-state p { margin: 0; font-size: 14px; line-height: 1.5; }

/* ========= ДЕСКТОП: 2 колонки ========= */
@media (min-width: 861px) {
  .messages-layout {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 16px;
  }
  .chat-back { display: none; }
  .chat-pane.is-hidden-desktop { display: none; }
  .chat-placeholder {
    display: flex; align-items: center; justify-content: center;
    color: #94a3b8; font-size: 15px; background: #fff;
    border-radius: 20px; border: 1px solid #e2e8f0;
    height: calc(100vh - 200px);
  }
}

/* ========= МОБИЛЬНЫЙ: чат на весь экран ========= */
@media (max-width: 860px) {
  .messages-layout { display: block; }
  .dialogs-pane {
    border-radius: 18px;
    height: calc(100vh - 180px);
  }

  /* Чат по умолчанию скрыт, показывается при .is-open */
  .chat-pane { display: none; }

  .chat-pane.is-open {
    display: flex;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 300;
    border-radius: 0;
    height: 100vh;
    height: 100dvh;
    border: 0;
    max-height: none;
  }

  /* Прячем заглушку на мобильном всегда */
  .chat-placeholder { display: none !important; }

  /* При открытом чате: прячем хедер и меню, блокируем скролл body */
  body.chat-open .header { display: none !important; }
  body.chat-open .mobile-nav { display: none !important; }
  body.chat-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    height: 100% !important;
    top: 0; left: 0;
  }

  /* Safe area для iPhone (notch / home indicator) */
  .chat-pane.is-open .chat-header {
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
  }
  .chat-pane.is-open .chat-form {
    padding-bottom: calc(30px + env(safe-area-inset-bottom, 0px));
  }

  .chat-messages { padding: 12px; }
  .chat-bubble { max-width: 85%; }
}


/* =========================================
   АВАТАР В ПРОФИЛЕ (компактный)
   ========================================= */
.profile-avatar {
  position: relative;
  width: 72px !important;
  height: 72px !important;
  min-width: 72px !important;
  min-height: 72px !important;
  max-width: 72px !important;
  max-height: 72px !important;
  border-radius: 50%;
  overflow: hidden;
  cursor: pointer;
  flex-shrink: 0;
  background: #eef4ff;
  display: grid;
  place-items: center;
  transition: transform .15s;
  isolation: isolate;
  box-sizing: border-box;
}
.profile-avatar:active { transform: scale(0.96); }

.profile-avatar img {
  width: 72px !important;
  height: 72px !important;
  max-width: 72px !important;
  max-height: 72px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 50%;
  position: relative;
  z-index: 1;
}

.profile-avatar-placeholder {
  width: 72px !important;
  height: 72px !important;
  display: grid;
  place-items: center;
  color: #2563eb;
  position: relative;
  z-index: 1;
}
.profile-avatar-placeholder .icon {
  width: 34px !important;
  height: 34px !important;
}

.profile-avatar-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .55);
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity .2s;
  pointer-events: none;
  z-index: 3;
  border-radius: 50%;
}
.profile-avatar:hover .profile-avatar-overlay { opacity: 1; }
.profile-avatar.is-uploading .profile-avatar-overlay {
  opacity: 1;
  background: rgba(15, 23, 42, .75);
}
.profile-avatar.is-uploading .profile-avatar-overlay svg { display: none; }
.profile-avatar.is-uploading .profile-avatar-overlay::after {
  content: '';
  width: 22px; height: 22px;
  border: 3px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: profile-spin 0.8s linear infinite;
}
@keyframes profile-spin { to { transform: rotate(360deg); } }

/* Мобильный: ещё компактнее если нужно */
@media (max-width: 480px) {
  .profile-avatar,
  .profile-avatar img,
  .profile-avatar-placeholder {
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    min-height: 64px !important;
    max-width: 64px !important;
    max-height: 64px !important;
  }
  .profile-avatar-placeholder .icon {
    width: 30px !important;
    height: 30px !important;
  }
}


/* =========================================
   TOOLBAR — выравнивание по высоте (market + news)
   ========================================= */
.market-toolbar {
    display: flex;
    gap: 10px;
    align-items: stretch;
    margin-bottom: 24px;
}

.market-search {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: stretch;
}

.market-search input {
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    padding: 0 56px 0 16px;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    font-size: 16px;
    color: #0f172a;
    outline: none;
    box-sizing: border-box;
    font-family: inherit;
    line-height: 48px;
    margin: 0;
}
.market-search input::placeholder { color: #94a3b8; }
.market-search input:focus { border-color: #2563eb; }

.market-search .search-btn-submit {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    min-height: 38px;
    max-height: 38px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 10px;
    background: #f1f5f9;
    color: #475569;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.market-search .search-btn-submit:hover { background: #e2e8f0; }

.btn-open-filters {
    flex: 0 0 auto;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    padding: 0 18px;
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    line-height: 1;
    color: #0f172a;
    cursor: pointer;
    white-space: nowrap;
    box-sizing: border-box;
    vertical-align: middle;
}
.btn-open-filters:hover { background: #f8fafc; }
.btn-open-filters svg {
    flex-shrink: 0;
    display: block;
    width: 20px;
    height: 20px;
}

@media (max-width: 640px) {
    .market-toolbar { gap: 8px; }
    .btn-open-filters { padding: 0 14px; font-size: 14px; }
}

/* Карусель в статье — отступ снизу как у старого article__hero */
.article .media-carousel {
  margin-bottom: 24px;
  border-radius: 20px;
}
@media (max-width: 720px) {
  .article .media-carousel {
    border-radius: 16px;
    margin-bottom: 20px;
  }
}


/* =========================================
   ПОЛНОЭКРАННАЯ ГАЛЕРЕЯ
   ========================================= */
.tg-gallery-modal {
  position: fixed !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 999999 !important;
  background: rgba(0, 0, 0, 0.96) !important;
  display: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.tg-gallery-modal.is-open {
  display: block !important;
  opacity: 1;
}

.tg-gallery-track {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  display: flex !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none;
  align-items: center !important;
}
.tg-gallery-track::-webkit-scrollbar { display: none; }

.tg-gallery-track img {
  flex: 0 0 100vw !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  object-fit: contain !important;
  scroll-snap-align: center !important;
  scroll-snap-stop: always !important;
  display: block !important;
  user-select: none;
  -webkit-user-drag: none;
}

.tg-gallery-close {
  position: fixed !important;
  top: 20px !important;
  right: 20px !important;
  z-index: 1000000 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  border: 0 !important;
  background: rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
  font-size: 28px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.tg-gallery-close:hover { background: rgba(255, 255, 255, 0.25) !important; }

@media (max-width: 720px) {
  .tg-gallery-close {
    top: calc(16px + env(safe-area-inset-top, 0px)) !important;
    right: 16px !important;
    width: 40px !important;
    height: 40px !important;
    font-size: 26px !important;
  }
}

/* Блокируем скролл страницы под галереей */
body.gallery-open { overflow: hidden !important; }


/* =========================================
   ИЗБРАННОЕ — сердечко (внутри .listing-card)
   ========================================= */
.listing-card .fav-heart {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: transform .15s, background .15s;
    -webkit-tap-highlight-color: transparent;
}
.listing-card .fav-heart:hover {
    background: #fff;
    transform: scale(1.08);
}
.listing-card .fav-heart:active {
    transform: scale(0.92);
}
.listing-card .fav-heart svg {
    display: block;
    pointer-events: none;
}
.listing-card .fav-heart:disabled {
    opacity: .5;
    cursor: wait;
}

/* Призрачная карточка (удалённый/снятый товар) */





/* =========================================
   ПРОСМОТРЫ В ИЗБРАННОМ (1 строка + полоса)
   ========================================= */
.listing-card .fav-views {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    margin-top: 8px !important;
    padding-top: 8px !important;
    border-top: 1px solid #f1f5f9 !important;
    font-size: 11px !important;
    color: #94a3b8 !important;
    line-height: 1 !important;
    flex-wrap: nowrap !important;
}
.listing-card .fav-views svg {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0 !important;
    display: block !important;
    color: #94a3b8 !important;
}
.listing-card .fav-views span {
    display: inline !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Тёмная тема */
body.dark-mode .listing-card .fav-views {
    border-top-color: #334155 !important;
    color: #94a3b8 !important;
}
body.dark-mode .listing-card .fav-views svg {
    color: #94a3b8 !important;
}

/* Ghost-карточка (удалённый/снятый) */
.listing-card--ghost {
    position: relative !important;
    background: #f8fafc !important;
    border: 1px dashed #cbd5e1 !important;
    opacity: .9;
    cursor: default;
}
.listing-card--ghost:hover {
    transform: none !important;
    box-shadow: var(--shadow-sm) !important;
}
.listing-card--ghost .listing-card__img {
    background: #eef2f7;
}
.listing-card--ghost .listing-card__body {
    padding: 14px;
}
.listing-card--ghost .fav-heart {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
}

/* Картинка внутри круглого аватара диалога */


/* Аватар в шапке чата — компактный и закруглённый */
.chat-header-avatar {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
    background: #eaf2ff !important;
    margin-right: 8px !important;
    display: block !important;
}

@media (max-width: 720px) {
    .chat-header-avatar {
        width: 30px !important;
        height: 30px !important;
        margin-right: 6px !important;
    }
}

/* =========================================
   АВАТАРКИ В СООБЩЕНИЯХ — финальные
   ========================================= */

/* Картинка абсолютно заполняет круглый контейнер */
.dialog-avatar img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 50% !important;
}

/* Аватар в шапке чата */
.chat-header-avatar {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
    background: #eaf2ff !important;
    margin-right: 8px !important;
    display: block !important;
}

@media (max-width: 720px) {
    .chat-header-avatar {
        width: 30px !important;
        height: 30px !important;
        margin-right: 6px !important;
    }
}

/* =========================================
   КНОПКА СКРОЛЛА ВНИЗ — финальные стили
   ========================================= */
.chat-pane {
    position: relative;
}

#chatScrollDown {
    position: absolute;
    right: 16px;
    bottom: 90px;
    z-index: 50;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 0;
    background: #2563eb;
    color: #fff;
    cursor: pointer;
    display: grid;
    place-items: center;
    box-shadow: 0 4px 16px rgba(37, 99, 235, 0.35);
    padding: 0;
    transition: transform .15s;
}
#chatScrollDown:active { transform: scale(0.92); }
#chatScrollDown svg { display: block; pointer-events: none; }

.scroll-down-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: #ef4444;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}
.scroll-down-badge[hidden] { display: none; }

@media (max-width: 860px) {
    #chatScrollDown {
        bottom: calc(90px + env(safe-area-inset-bottom, 0px));
        right: 12px;
        width: 42px;
        height: 42px;
    }
}

/* =========================================
   ПРЕВЬЮ ВЛОЖЕНИЙ — СКРЫТО когда пусто
   ========================================= */
.chat-attachments-preview {
    display: none !important;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
    background: #fff;
    border-top: 1px solid #f1f5f9;
}
.chat-attachments-preview[hidden] {
    display: none !important;
}
.chat-attachments-preview.has-items {
    display: flex !important;
}

.attach-preview {
    position: relative;
    width: 68px;
    height: 68px;
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.attach-preview img { width: 100%; height: 100%; object-fit: cover; }
.attach-preview .file-icon { font-size: 28px; }
.attach-preview .preview-status {
    position: absolute; inset: 0;
    background: rgba(255,255,255,.7);
    display: grid; place-items: center;
    font-size: 20px; font-weight: 800;
}
.attach-preview .preview-remove {
    position: absolute; top: 2px; right: 2px;
    width: 20px; height: 20px; border-radius: 50%;
    border: 0; background: rgba(15,23,42,.7); color: #fff;
    cursor: pointer; font-size: 14px; line-height: 1;
    display: grid; place-items: center; padding: 0;
}
.attach-preview .preview-name {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: rgba(15,23,42,.75); color: #fff;
    font-size: 9px; padding: 2px 4px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Фото в чате — кликабельно, но не ссылка */

/* =========================================
   ФОТО В ЧАТЕ (кликабельно)
   ========================================= */
.bubble-image {
    display: inline-block;
    cursor: zoom-in;
    border-radius: 10px;
    overflow: hidden;
    max-width: 100%;
    -webkit-tap-highlight-color: transparent;
}
.bubble-image img {
    max-width: 100%;
    max-height: 240px;
    border-radius: 10px;
    display: block;
    user-select: none;
}
.bubble-image:active {
    opacity: 0.85;
}

/* Изменить */



/* Удалить */



/* Контейнер для кнопок */


/* Мобильный — компактнее */
@media (max-width: 480px) {
    
    
}

/* Тёмная тема */
body.dark-mode 
body.dark-mode 
body.dark-mode 
body.dark-mode

/* =========================================
   КНОПКИ В МОИХ ОБЪЯВЛЕНИЯХ — компактные
   ========================================= */
.my-listing-actions {
    display: flex !important;
    gap: 6px !important;
    margin-top: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.my-listing-btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    height: 32px !important;
    padding: 0 6px !important;
    border-radius: 8px !important;
    border: 1px solid transparent !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    transition: background .15s, border-color .15s !important;
}
.my-listing-btn span {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
}
.my-listing-btn svg {
    flex-shrink: 0 !important;
    display: block !important;
    width: 12px !important;
    height: 12px !important;
}

/* Изменить */
.my-listing-btn--edit {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-color: #e2e8f0 !important;
}
.my-listing-btn--edit:hover {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
}

/* Удалить */
.my-listing-btn--delete {
    background: #fef2f2 !important;
    color: #dc2626 !important;
    border-color: #fecaca !important;
}
.my-listing-btn--delete:hover {
    background: #fee2e2 !important;
    border-color: #fca5a5 !important;
}

/* Мобильный — ещё компактнее */
@media (max-width: 480px) {
    .my-listing-btn {
        height: 30px !important;
        padding: 0 4px !important;
        font-size: 11px !important;
        gap: 3px !important;
    }
    .my-listing-btn svg {
        width: 11px !important;
        height: 11px !important;
    }
}

/* Очень узкий экран — только иконки */
@media (max-width: 360px) {
    .my-listing-btn span {
        display: none !important;
    }
    .my-listing-btn {
        padding: 0 !important;
    }
    .my-listing-btn svg {
        width: 14px !important;
        height: 14px !important;
    }
}

/* Тёмная тема */
body.dark-mode .my-listing-btn--edit {
    background: #1e293b !important;
    color: #e2e8f0 !important;
    border-color: #334155 !important;
}
body.dark-mode .my-listing-btn--delete {
    background: rgba(220, 38, 38, 0.15) !important;
    color: #f87171 !important;
    border-color: rgba(220, 38, 38, 0.3) !important;
}

/* =========================================
   КАРТОЧКА АДМИН-ПАНЕЛИ В ПРОФИЛЕ
   ========================================= */
.admin-shortcut {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 14px 0;
    padding: 16px;
    background: linear-gradient(135deg, #7c3aed 0%, #6366f1 100%);
    border-radius: 18px;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(124, 58, 237, 0.25);
    transition: transform .15s, box-shadow .15s;
    position: relative;
    overflow: hidden;
}
.admin-shortcut::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 60%);
    pointer-events: none;
}
.admin-shortcut:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(124, 58, 237, 0.35);
}
.admin-shortcut:active {
    transform: translateY(0);
}

.admin-shortcut__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.2);
    display: grid;
    place-items: center;
    position: relative;
    z-index: 1;
}
.admin-shortcut__icon svg {
    display: block;
}

.admin-shortcut__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: relative;
    z-index: 1;
}
.admin-shortcut__body strong {
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -.2px;
}
.admin-shortcut__body span {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.8);
}

.admin-shortcut__arrow {
    flex-shrink: 0;
    font-size: 22px;
    color: rgba(255, 255, 255, 0.8);
    position: relative;
    z-index: 1;
}

/* Мобильный — компактнее */
@media (max-width: 480px) {
    .admin-shortcut {
        padding: 14px;
        gap: 12px;
        border-radius: 16px;
    }
    .admin-shortcut__icon {
        width: 38px;
        height: 38px;
        border-radius: 10px;
    }
    .admin-shortcut__body strong {
        font-size: 14px;
    }
    .admin-shortcut__body span {
        font-size: 11px;
    }
}

/* =========================================
   АДМИНКА — МОБИЛЬНАЯ ВЕРСИЯ
   ========================================= */

/* Скрываем кнопку "Сайт" на десктопе */
.admin-top__back-mobile {
    display: none;
}

/* === Планшет / мобильный === */
@media (max-width: 900px) {

    /* Хедер — компактнее */
    .admin-top {
        height: 56px !important;
        padding: 0 14px !important;
    }
    .admin-brand img {
        width: 130px !important;
    }
    .admin-top__right {
        gap: 8px !important;
        font-size: 12px !important;
    }
    .admin-top__right > span {
        display: none !important;
    }
    .admin-top__profile,
    .admin-top__back-mobile {
        display: inline-flex !important;
        align-items: center;
        padding: 7px 12px;
        background: #f1f5f9;
        color: #334155 !important;
        border-radius: 10px;
        font-size: 12px;
        font-weight: 600;
        text-decoration: none !important;
        line-height: 1;
    }
    .admin-top__back-mobile {
        background: #2563eb;
        color: #fff !important;
    }

    /* Сетка — 1 колонка */
    .admin-shell {
        grid-template-columns: 1fr !important;
        min-height: calc(100vh - 56px);
    }

    /* Сайдбар → горизонтальный скролл-бар с пилюлями */
    .admin-sidebar {
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 10px 14px !important;
        gap: 0 !important;
        border-right: 0 !important;
        border-bottom: 1px solid #e2e8f0 !important;
        position: sticky !important;
        top: 56px !important;
        z-index: 20;
        background: #fff;
    }
    .admin-sidebar::-webkit-scrollbar {
        display: none;
    }

    /* Навигация — пилюли в строку */
    .admin-nav {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        width: 100%;
    }
    .admin-nav > a {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
        padding: 8px 14px !important;
        border-radius: 999px !important;
        background: #f1f5f9 !important;
        color: #334155 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        text-decoration: none !important;
        border: 1px solid transparent !important;
        transition: background .15s !important;
    }
    .admin-nav > a.active {
        background: #2563eb !important;
        color: #fff !important;
        border-color: #2563eb !important;
    }

    .admin-sidebar__title,
    .admin-sidebar__bottom {
        display: none !important;
    }

    /* Контент */
    .admin-main {
        padding: 16px 14px !important;
    }

    /* Заголовок страницы */
    .admin-page-head {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
        margin-bottom: 16px !important;
    }
    .admin-page-head h1 {
        font-size: 22px !important;
        letter-spacing: -.3px;
    }
    .admin-page-head p {
        font-size: 13px !important;
    }

    /* Статистика — 2 колонки */
    .admin-stats {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        margin-bottom: 14px !important;
    }
    .admin-stat {
        padding: 14px !important;
        border-radius: 14px !important;
    }
    .admin-stat span {
        font-size: 11px !important;
    }
    .admin-stat strong {
        font-size: 22px !important;
    }
    .admin-stat small {
        font-size: 10px !important;
    }

    /* Карточки */
    .admin-card {
        padding: 16px !important;
        border-radius: 16px !important;
        margin-top: 16px !important;
    }
    .admin-card h2 {
        font-size: 16px !important;
        margin-bottom: 14px !important;
    }

    /* Таблицы — горизонтальный скролл */
    .admin-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 0 !important;
    }
    .admin-table {
        min-width: 700px;
        font-size: 13px !important;
    }
    .admin-table th,
    .admin-table td {
        padding: 10px 12px !important;
        white-space: nowrap;
    }

    /* Поиск — столбиком */
    .admin-search {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .admin-search input {
        width: 100% !important;
    }
    .admin-search button {
        width: 100% !important;
    }

    /* Форма — столбиком */
    .admin-form-grid {
        grid-template-columns: 1fr !important;
    }
    .admin-two-col {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    /* Трафик-грид — столбиком */
    .admin-traffic-grid {
        grid-template-columns: 1fr !important;
    }

    /* Нижний отступ для safe-area */
    body.admin-body {
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
}

/* === Очень узкие экраны (iPhone SE и меньше) === */
@media (max-width: 400px) {
    .admin-brand img {
        width: 100px !important;
    }
    .admin-top__profile {
        display: none !important;
    }
    .admin-main {
        padding: 12px 10px !important;
    }
    .admin-stats {
        gap: 8px !important;
    }
    .admin-stat {
        padding: 12px !important;
    }
    .admin-stat strong {
        font-size: 20px !important;
    }
    .admin-nav > a {
        padding: 7px 12px !important;
        font-size: 12px !important;
    }
}

/* === Тёмная тема для админки === */
body.dark-mode .admin-top,
body.dark-mode .admin-sidebar {
    background: #0f172a !important;
    border-color: #1e293b !important;
}
body.dark-mode .admin-top__profile,
body.dark-mode .admin-top__back-mobile {
    background: #1e293b !important;
    color: #cbd5e1 !important;
}
body.dark-mode .admin-nav > a {
    background: #1e293b !important;
    color: #cbd5e1 !important;
}
body.dark-mode .admin-nav > a.active {
    background: #3b82f6 !important;
    color: #fff !important;
}

/* =========================================
   АДМИНКА — МОБИЛЬНАЯ (ФИКС ГОРИЗОНТАЛЬНОГО МЕНЮ)
   ========================================= */

.admin-top__back-mobile { display: none; }

@media (max-width: 1100px) {
    .admin-top {
        height: 56px !important;
        padding: 0 14px !important;
    }
    .admin-brand img { width: 130px !important; }
    .admin-top__right { gap: 8px !important; font-size: 12px !important; }
    .admin-top__right > span { display: none !important; }
    .admin-top__profile,
    .admin-top__back-mobile {
        display: inline-flex !important;
        align-items: center;
        padding: 7px 12px;
        border-radius: 10px;
        font-size: 12px;
        font-weight: 600;
        text-decoration: none !important;
        line-height: 1;
    }
    .admin-top__profile { background: #f1f5f9; color: #334155 !important; }
    .admin-top__back-mobile { background: #2563eb; color: #fff !important; }

    .admin-shell { display: block !important; }

    .admin-sidebar {
        display: block !important;
        flex-direction: unset !important;
        width: 100% !important;
        max-width: 100vw !important;
        overflow: visible !important;
        padding: 10px 14px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #e2e8f0 !important;
        position: sticky !important;
        top: 56px !important;
        z-index: 20 !important;
        background: #fff !important;
        box-sizing: border-box !important;
    }
    .admin-sidebar__title,
    .admin-sidebar__bottom { display: none !important; }

    .admin-nav {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding-bottom: 2px !important;
    }
    .admin-nav::-webkit-scrollbar { display: none !important; }

    .admin-nav > a {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
        padding: 8px 14px !important;
        border-radius: 999px !important;
        background: #f1f5f9 !important;
        color: #334155 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        text-decoration: none !important;
        border: 1px solid transparent !important;
    }
    .admin-nav > a.active {
        background: #2563eb !important;
        color: #fff !important;
        border-color: #2563eb !important;
    }

    .admin-main { padding: 16px 14px !important; }

    .admin-page-head {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
        margin-bottom: 16px !important;
    }
    .admin-page-head h1 { font-size: 22px !important; letter-spacing: -.3px; }
    .admin-page-head p { font-size: 13px !important; }

    .admin-stats { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
    .admin-stat { padding: 14px !important; border-radius: 14px !important; }
    .admin-stat span { font-size: 11px !important; }
    .admin-stat strong { font-size: 22px !important; }
    .admin-stat small { font-size: 10px !important; }

    .admin-card { padding: 16px !important; border-radius: 16px !important; }
    .admin-card h2 { font-size: 16px !important; margin-bottom: 14px !important; }

    .admin-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 0 !important;
    }
    .admin-table { min-width: 700px; font-size: 13px !important; }
    .admin-table th,
    .admin-table td { padding: 10px 12px !important; white-space: nowrap; }

    .admin-search { flex-direction: column !important; gap: 8px !important; }
    .admin-search input,
    .admin-search button { width: 100% !important; }

    .admin-form-grid { grid-template-columns: 1fr !important; }
    .admin-two-col { grid-template-columns: 1fr !important; gap: 14px !important; }
    .admin-traffic-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 400px) {
    .admin-brand img { width: 100px !important; }
    .admin-top__profile { display: none !important; }
    .admin-main { padding: 12px 10px !important; }
    .admin-stats { gap: 8px !important; }
    .admin-stat { padding: 12px !important; }
    .admin-stat strong { font-size: 20px !important; }
    .admin-nav > a { padding: 7px 12px !important; font-size: 12px !important; }
}

/* =========================================
   ФОРМА АДМИНКИ — правильные file/checkbox
   ========================================= */

/* Убираем наследование text-input стилей для file и checkbox */
.admin-form input[type="file"],
.admin-form input[type="checkbox"],
.admin-form input[type="radio"] {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

/* Файл — компактная зона с кнопкой */
.admin-form input[type="file"] {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 1.5px dashed #cbd5e1;
    border-radius: 11px;
    background: #f8fafc;
    font-size: 13px;
    font-weight: 500;
    color: #64748b;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color .15s, background .15s;
}
.admin-form input[type="file"]:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
}

/* Кнопка «Выбрать файл» */
.admin-form input[type="file"]::file-selector-button {
    padding: 8px 14px;
    margin-right: 10px;
    border: 0;
    border-radius: 8px;
    background: #2563eb;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
}
.admin-form input[type="file"]::file-selector-button:hover {
    background: #1d4ed8;
}
/* Safari/WebKit */
.admin-form input[type="file"]::-webkit-file-upload-button {
    padding: 8px 14px;
    margin-right: 10px;
    border: 0;
    border-radius: 8px;
    background: #2563eb;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* Чекбоксы — нормальный размер */
.admin-form input[type="checkbox"],
.admin-form input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    accent-color: #2563eb;
    cursor: pointer;
    vertical-align: middle;
}

/* Чекбокс «Удалить» рядом с медиа — компактный */
.admin-media-item span input[type="checkbox"] {
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    margin: 0;
}

/* Дата-время — на всю ширину */
.admin-form input[type="datetime-local"],
.admin-form input[type="date"],
.admin-form input[type="time"] {
    width: 100%;
    padding: 11px 12px;
    font-size: 15px;
}

/* Мобильный — компактнее */
@media (max-width: 600px) {
    .admin-form input[type="file"] {
        font-size: 12px;
    }
    .admin-form input[type="file"]::file-selector-button,
    .admin-form input[type="file"]::-webkit-file-upload-button {
        padding: 7px 12px;
        font-size: 12px;
    }
}

/* =========================================
   КНОПКА «НАЗАД» (как в article.html)
   ========================================= */
.back-btn-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid var(--line, #e2e8f0);
    border-radius: 12px;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #0f172a);
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    margin-bottom: 12px;
    font-family: inherit;
}
.back-btn-inline:hover {
    background: #f8fafc;
}
.back-btn-inline:active {
    transform: scale(0.98);
}
.back-btn-inline svg {
    display: block;
}

/* Скрытие кнопки share на списках */
.is-hidden-share {
    display: none !important;
}
.is-hidden-share.is-visible {
    display: grid !important;
}

/* =========================================
   ФИКС DATE-ИНПУТОВ В ШТОРКАХ (iOS/Android)
   ========================================= */
#eventsFiltersPanel,
#newsPanel,
#favFiltersPanel,
#filterSheet,
.sheet__panel,
.sheet-panel {
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

#eventsFiltersPanel input[type="date"],
#newsPanel input[type="date"],
#favFiltersPanel input[type="date"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    -webkit-appearance: none;
    appearance: none;
    display: block;
}

/* iOS Safari — специально для date */
#eventsFiltersPanel input[type="date"]::-webkit-date-and-time-value,
#newsPanel input[type="date"]::-webkit-date-and-time-value,
#favFiltersPanel input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}

/* Все input/select в шторках — ограничиваем */
#eventsFiltersPanel input,
#eventsFiltersPanel select,
#eventsFiltersPanel textarea,
#newsPanel input,
#newsPanel select,
#favFiltersPanel input,
#favFiltersPanel select {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* =========================================
   СПРАВОЧНИК — детальная карточка
   ========================================= */
.directory-detail-card {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    margin-bottom: 20px !important;
    box-shadow: 0 2px 8px rgba(15,23,42,.04) !important;
}
.directory-detail-card .media-carousel {
    border-radius: 0 !important;
    margin: 0 !important;
}
.directory-detail-body {
    padding: 24px !important;
}
.directory-detail-meta {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 13px !important;
    color: #64748b !important;
    margin-bottom: 6px !important;
}
.directory-detail-meta svg {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0 !important;
    max-width: 14px !important;
    max-height: 14px !important;
}
.directory-detail-body h1 {
    font-size: 28px !important;
    line-height: 1.15 !important;
    margin: 8px 0 12px !important;
    letter-spacing: -0.4px !important;
}
.directory-detail-body .article__lead {
    font-size: 17px !important;
    color: #334155 !important;
    margin: 0 0 16px !important;
}
.directory-detail-body .article__text {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #1e293b !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}
.directory-detail-body .article__text p {
    margin: 0 0 14px !important;
}

/* Карточка в списке */
.directory-card {
    display: flex !important;
    gap: 12px !important;
    align-items: flex-start !important;
    padding: 14px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: box-shadow .15s !important;
    margin-bottom: 10px !important;
}
.directory-card:hover {
    box-shadow: 0 4px 16px rgba(15,23,42,.08) !important;
}
.directory-card__icon {
    width: 40px !important;
    height: 40px !important;
    flex-shrink: 0 !important;
    background: #eaf2ff !important;
    border-radius: 10px !important;
    display: grid !important;
    place-items: center !important;
    color: #2563eb !important;
}
.directory-card__icon .icon,
.directory-card__icon svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
}
.directory-card__text {
    flex: 1 !important;
    min-width: 0 !important;
}
.directory-card__text h3 {
    margin: 0 0 4px !important;
    font-size: 15px !important;
    color: #0f172a !important;
    word-wrap: break-word !important;
}
.directory-card__location {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 12px !important;
    color: #64748b !important;
    margin-bottom: 6px !important;
}
.directory-card__location svg {
    width: 12px !important;
    height: 12px !important;
    flex-shrink: 0 !important;
    max-width: 12px !important;
    max-height: 12px !important;
}
.directory-card__summary {
    font-size: 13px !important;
    color: #64748b !important;
    margin: 0 0 6px !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}
.directory-card__footer {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-top: 6px !important;
    font-size: 11px !important;
    color: #94a3b8 !important;
}
.directory-card__more {
    color: #2563eb !important;
    font-weight: 600 !important;
}

/* Мобильный */
@media (max-width: 720px) {
    .directory-detail-card { border-radius: 16px !important; }
    .directory-detail-body { padding: 16px !important; }
    .directory-detail-body h1 { font-size: 22px !important; }
    .directory-detail-body .article__lead { font-size: 15px !important; }
    .directory-detail-body .article__text { font-size: 15px !important; }
}

/* =========================================
   ЛОКАЦИЯ В ДЕТАЛИ СПРАВОЧНИКА — inline-flex
   ========================================= */
.directory-detail-location {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #64748b !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}
.directory-detail-location svg {
    width: 14px !important;
    height: 14px !important;
    min-width: 14px !important;
    min-height: 14px !important;
    max-width: 14px !important;
    max-height: 14px !important;
    flex-shrink: 0 !important;
    display: block !important;
}
.directory-detail-location span {
    display: inline-block !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}

/* =========================================
   БЕЙДЖИ НА ИКОНКАХ В ХЕДЕРЕ
   ========================================= */
.header__actions .icon-btn,
.header__actions .notification-link,
.header__actions .header-action-msg {
    position: relative !important;
}




@media (max-width: 720px) {
    
}

body.dark-mode

/* =========================================
   БЕЙДЖИ НА ИКОНКАХ — увеличены
   ========================================= */
.header__actions .icon-btn,
.header__actions .notification-link,
.header__actions .header-action-msg,
.icon-btn.notification-link {
    position: relative !important;
}




/* Мобильный — чуть меньше, но 2-значные влезают */
@media (max-width: 720px) {
    
}

/* Тёмная тема */
body.dark-mode

/* =========================================
   БЕЙДЖИ — ФИНАЛЬНЫЙ РАЗМЕР
   ========================================= */
.header__actions .icon-btn,
.header__actions .notification-link,
.header__actions .header-action-msg,
.icon-btn.notification-link {
    position: relative !important;
    overflow: visible !important;
}

.header-badge {
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 8px !important;
    border-radius: 12px !important;
    background: #ef4444 !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 24px !important;
    text-align: center !important;
    /* border заменили на box-shadow — не съедает размер */
    box-shadow: 0 0 0 2px #ffffff, 0 2px 8px rgba(239, 68, 68, 0.5) !important;
    box-sizing: border-box !important;
    z-index: 10 !important;
    pointer-events: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
}
.header-badge[hidden] {
    display: none !important;
}

/* Для 3+ цифр — ещё шире */
.header-badge[data-len="3"] {
    min-width: 32px !important;
    padding: 0 9px !important;
    font-size: 12px !important;
}

/* Мобильный */
@media (max-width: 720px) {
    .header-badge {
        min-width: 22px !important;
        height: 22px !important;
        padding: 0 7px !important;
        font-size: 12px !important;
        line-height: 22px !important;
        top: -7px !important;
        right: -7px !important;
        border-radius: 11px !important;
    }
    .header-badge[data-len="3"] {
        min-width: 30px !important;
        padding: 0 8px !important;
    }
}

/* Тёмная тема */
body.dark-mode .header-badge {
    box-shadow: 0 0 0 2px #0f172a, 0 2px 8px rgba(239, 68, 68, 0.5) !important;
}

/* =========================================
   СКЕЛЕТОНЫ ЗАГРУЗКИ
   ========================================= */
.skeleton-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    pointer-events: none;
}
.skeleton-img {
    width: 100%;
    aspect-ratio: 4/3;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.skeleton-line {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-line--price { height: 18px; width: 50%; }
.skeleton-line--title { height: 14px; width: 90%; }
.skeleton-line--title-short { height: 14px; width: 65%; }
.skeleton-line--meta { height: 10px; width: 70%; }
.skeleton-line--footer { height: 10px; width: 40%; margin-top: 6px; }

@keyframes skeleton-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Тёмная тема */
body.dark-mode .skeleton-card {
    background: #1e293b;
    border-color: #334155;
}
body.dark-mode .skeleton-img,
body.dark-mode .skeleton-line {
    background: linear-gradient(90deg, #334155 0%, #475569 50%, #334155 100%);
    background-size: 200% 100%;
}

/* =========================================
   СКЕЛЕТОНЫ — детали, сообщения, диалоги
   ========================================= */

/* Скелетон детальной страницы (статья, товар) */
.skeleton-detail {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 16px;
}
.skeleton-detail-hero {
    width: 100%;
    aspect-ratio: 16/9;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-detail-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.skeleton-detail-title {
    height: 28px;
    width: 80%;
    border-radius: 8px;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-detail-line {
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-detail-line--short { width: 45%; }

/* Скелетон сообщений в чате (пузыри) */
.skeleton-msg {
    max-width: 70%;
    height: 40px;
    border-radius: 18px 18px 18px 4px;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
    margin-bottom: 8px;
}
.skeleton-msg--mine {
    margin-left: auto;
    border-radius: 18px 18px 4px 18px;
    max-width: 60%;
}
.skeleton-msg--short { max-width: 40%; }

/* Скелетон диалогов (список) */
.skeleton-dialog {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid #f1f5f9;
}
.skeleton-dialog-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    flex-shrink: 0;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-dialog-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.skeleton-dialog-line {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-dialog-line--title { width: 60%; height: 14px; }
.skeleton-dialog-line--meta { width: 40%; }

/* Тёмная тема */
body.dark-mode .skeleton-detail { background: #1e293b; border-color: #334155; }
body.dark-mode .skeleton-detail-hero,
body.dark-mode .skeleton-detail-title,
body.dark-mode .skeleton-detail-line,
body.dark-mode .skeleton-msg,
body.dark-mode .skeleton-dialog-avatar,
body.dark-mode .skeleton-dialog-line {
    background: linear-gradient(90deg, #334155 0%, #475569 50%, #334155 100%);
    background-size: 200% 100%;
}
body.dark-mode .skeleton-dialog { border-bottom-color: #334155; }

/* =========================================
   ПУБЛИЧНЫЙ ПРОФИЛЬ (visitor mode)
   ========================================= */
.profile-visitor-actions {
    margin: 16px 0;
}
.profile-visitor-stats {
    display: flex;
    gap: 12px;
    margin: 16px 0;
}
.profile-visitor-stat {
    flex: 1;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 14px;
    text-align: center;
}
.profile-visitor-stat strong {
    display: block;
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
}
.profile-visitor-stat span {
    display: block;
    font-size: 12px;
    color: #64748b;
    margin-top: 2px;
}
@media (max-width: 480px) {
    .profile-visitor-stat strong { font-size: 18px; }
    .profile-visitor-stat span { font-size: 11px; }
}

/* =========================================
   БЛОК ПРОДАВЦА В КАРТОЧКЕ ТОВАРА
   ========================================= */
.seller-card {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 18px !important;
    padding: 12px 14px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    background: #f8fafc !important;
}
.seller-card__avatar {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: #eaf2ff !important;
    color: #2563eb !important;
    display: grid !important;
    place-items: center !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
.seller-card__avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.seller-card__info {
    flex: 1 !important;
    min-width: 0 !important;
}
.seller-card__info span {
    display: block !important;
    font-size: 11px !important;
    color: #64748b !important;
    margin-bottom: 2px !important;
}
.seller-card__info strong {
    display: block !important;
    font-size: 15px !important;
    color: #0f172a !important;
    font-weight: 700 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.seller-profile-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 8px 14px !important;
    border: 1px solid #cbd5e1 !important;
    background: #fff !important;
    border-radius: 10px !important;
    color: #2563eb !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    transition: background .15s, border-color .15s;
}
.seller-profile-btn:hover {
    background: #eff6ff !important;
    border-color: #93c5fd !important;
}
.seller-profile-btn svg {
    display: block !important;
    flex-shrink: 0 !important;
}

/* Неизвестный продавец */
.seller-card--unknown {
    padding: 14px !important;
}
.seller-card--unknown span {
    font-size: 12px !important;
    color: #64748b !important;
}
.seller-card--unknown strong {
    display: block !important;
    font-size: 14px !important;
    color: #0f172a !important;
}

/* Мобильный */
@media (max-width: 480px) {
    .seller-card {
        padding: 10px 12px !important;
        gap: 10px !important;
    }
    .seller-card__avatar {
        width: 38px !important;
        height: 38px !important;
        font-size: 16px !important;
    }
    .seller-card__info strong {
        font-size: 14px !important;
    }
    .seller-profile-btn {
        padding: 7px 10px !important;
        font-size: 12px !important;
    }
}

/* Тёмная тема */
body.dark-mode .seller-card {
    background: #1e293b !important;
    border-color: #334155 !important;
}
body.dark-mode .seller-card__info span { color: #94a3b8 !important; }
body.dark-mode .seller-card__info strong { color: #f8fafc !important; }
body.dark-mode .seller-profile-btn {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #60a5fa !important;
}

/* =========================================
   СТРАНИЦА ПРОДАВЦА
   ========================================= */
.seller-page {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 20px;
    margin-bottom: 12px;
}
.seller-page__header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}
.seller-page__avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #eaf2ff;
    color: #2563eb;
    display: grid;
    place-items: center;
    font-size: 28px;
    font-weight: 800;
    overflow: hidden;
    flex-shrink: 0;
}
.seller-page__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.seller-page__info {
    flex: 1;
    min-width: 0;
}
.seller-page__info h1 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
    word-break: break-word;
}
.seller-page__meta {
    font-size: 13px;
    color: #64748b;
    line-height: 1.4;
}
.seller-page__stats {
    display: flex;
    gap: 10px;
    margin-bottom: 16px;
}
.seller-stat {
    flex: 1;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    text-align: center;
}
.seller-stat strong {
    display: block;
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
}
.seller-stat span {
    display: block;
    font-size: 11px;
    color: #64748b;
    margin-top: 2px;
}
.seller-page__write {
    width: 100%;
    justify-content: center;
    height: 48px;
    display: inline-flex;
    align-items: center;
}

@media (max-width: 480px) {
    .seller-page {
        padding: 16px;
        border-radius: 16px;
    }
    .seller-page__avatar {
        width: 60px;
        height: 60px;
    }
    .seller-page__info h1 {
        font-size: 18px;
    }
    .seller-stat strong {
        font-size: 18px;
    }
}

/* Тёмная тема */
body.dark-mode .seller-page {
    background: #1e293b;
    border-color: #334155;
}
body.dark-mode .seller-page__info h1 { color: #f8fafc; }
body.dark-mode .seller-page__meta { color: #94a3b8; }
body.dark-mode .seller-stat {
    background: #0f172a;
    border-color: #334155;
}
body.dark-mode .seller-stat strong { color: #f8fafc; }
body.dark-mode .seller-stat span { color: #94a3b8; }

/* Кнопка «Продано» */
.my-listing-btn--sold {
    background: #f0fdf4 !important;
    color: #15803d !important;
    border-color: #bbf7d0 !important;
}
.my-listing-btn--sold:hover {
    background: #dcfce7 !important;
    border-color: #86efac !important;
}
body.dark-mode .my-listing-btn--sold {
    background: rgba(21, 128, 61, 0.15) !important;
    color: #4ade80 !important;
    border-color: rgba(21, 128, 61, 0.3) !important;
}

/* Кнопка «...» (kebab) в карточке объявления */
.my-listing-kebab {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 5 !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 0 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #0f172a !important;
    cursor: pointer !important;
    display: grid !important;
    place-items: center !important;
    box-shadow: 0 2px 8px rgba(15,23,42,.15) !important;
    transition: transform .15s, background .15s;
}
.my-listing-kebab:hover {
    background: #fff !important;
    transform: scale(1.08);
}
.my-listing-kebab:active {
    transform: scale(0.94);
}
.my-listing-kebab svg {
    display: block !important;
    pointer-events: none !important;
}
body.dark-mode .my-listing-kebab {
    background: rgba(30, 41, 59, 0.95) !important;
    color: #cbd5e1 !important;
}

/* my-listings: карточка relative для «⋯» */
#myListingsContainer .listing-card {
    position: relative !important;
}
#myListingsContainer .my-listing-kebab {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 10 !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 0 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #0f172a !important;
    cursor: pointer !important;
    display: grid !important;
    place-items: center !important;
    box-shadow: 0 2px 8px rgba(15,23,42,.15) !important;
    transition: transform .15s;
}
#myListingsContainer .my-listing-kebab:hover {
    background: #fff !important;
    transform: scale(1.08);
}
#myListingsContainer .my-listing-kebab:active {
    transform: scale(0.94);
}
#myListingsContainer .my-listing-kebab svg {
    display: block !important;
    pointer-events: none !important;
}
body.dark-mode #myListingsContainer .my-listing-kebab {
    background: rgba(30, 41, 59, 0.95) !important;
    color: #cbd5e1 !important;
}

/* Кнопка выбора покупателя в sheet «Где продано?» */
.sold-buyer-btn {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    font-family: inherit !important;
    font-size: 15px !important;
    color: #0f172a !important;
    transition: background .15s !important;
    width: 100% !important;
    text-align: left !important;
}
.sold-buyer-btn:hover {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
}
.sold-buyer-btn strong {
    font-weight: 600 !important;
}

/* =========================================
   СТРАНИЦА ПОДТВЕРЖДЕНИЯ СДЕЛКИ
   ========================================= */
.deal-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.deal-card__header {
    margin-bottom: 16px;
}
.deal-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
}
.deal-status--pending {
    background: #fef3c7;
    color: #92400e;
}
.deal-status--ok {
    background: #dcfce7;
    color: #15803d;
}
.deal-status--err {
    background: #fee2e2;
    color: #b91c1c;
}
.deal-status--info {
    background: #dbeafe;
    color: #1e40af;
}
.deal-listing {
    display: flex;
    gap: 12px;
    padding: 12px;
    background: #f8fafc;
    border-radius: 14px;
    margin-bottom: 16px;
    align-items: center;
}
.deal-listing img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
}
.deal-listing__placeholder {
    width: 72px;
    height: 72px;
    background: #eef2f7;
    border-radius: 10px;
    flex-shrink: 0;
}
.deal-listing__info {
    flex: 1;
    min-width: 0;
}
.deal-listing__info strong {
    display: block;
    font-size: 15px;
    color: #0f172a;
    margin-bottom: 4px;
    word-wrap: break-word;
}
.deal-listing__price {
    font-size: 18px;
    font-weight: 800;
    color: #2563eb;
}
.deal-participants {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px;
}
.deal-participant {
    padding: 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}
.deal-participant__label {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
    font-weight: 600;
}
.deal-participant__name {
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}
.deal-info {
    padding: 12px 14px;
    background: #eff6ff;
    border-radius: 12px;
    font-size: 13px;
    color: #1e40af;
    line-height: 1.5;
    margin-bottom: 16px;
}
.deal-actions {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}
@media (max-width: 480px){
    .deal-card { padding: 16px; border-radius: 16px; }
    .deal-participants { grid-template-columns: 1fr; }
    .deal-actions { flex-direction: column; }
}
body.dark-mode .deal-card {
    background: #1e293b;
    border-color: #334155;
}
body.dark-mode .deal-listing { background: #0f172a; }
body.dark-mode .deal-listing__info strong { color: #f8fafc; }
body.dark-mode .deal-participant { background: #0f172a; border-color: #334155; }
body.dark-mode .deal-participant__name { color: #f8fafc; }
body.dark-mode .deal-info { background: #1e3a5f; color: #93c5fd; }
