/* DoBy App (PWA) — тёмная luxury-тема. Навигация 5 разделов по ТЗ §5.2 */
:root {
  --bg:#0A1420; --card:#13202E; --card2:#182838; --line:rgba(255,255,255,.09);
  --fg:#EDF2F6; --mut:#8FA3B3; --gold:#E8C170; --teal:#3DBDB3; --danger:#E36868;
  --ok:#4CC077; --r:16px;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html, body { margin:0; padding:0; background:#050B12; }
body { font-family:'Golos Text', system-ui, sans-serif; color:var(--fg); font-size:15px; line-height:1.5; }
.phone { max-width:480px; margin:0 auto; min-height:100dvh; background:var(--bg); position:relative; padding-bottom:76px; }
a { color:inherit; text-decoration:none; }
.num { font-variant-numeric:tabular-nums; font-weight:700; }
.mut { color:var(--mut); } .small { font-size:12.5px; }
.screen { display:none; padding:0 16px; animation:fade .18s ease; }
.screen.on { display:block; }
@keyframes fade { from { opacity:0; transform:translateY(6px);} to { opacity:1; transform:none;} }

/* Топбар */
.top { display:flex; align-items:center; gap:10px; padding:16px 16px 8px; }
.top .logo { font-weight:800; font-size:21px; letter-spacing:-.02em; }
.top .logo b { color:var(--gold); }
.top .country { margin-left:auto; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:6px 12px; font-size:12.5px; }
.top .bell { background:var(--card); border:1px solid var(--line); border-radius:50%; width:34px; height:34px; display:flex; align-items:center; justify-content:center; font-size:15px; }

/* Нижняя навигация — 5 разделов по ТЗ */
.tabbar { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px; background:rgba(10,20,32,.92); backdrop-filter:blur(14px); border-top:1px solid var(--line); display:flex; z-index:50; padding-bottom:env(safe-area-inset-bottom); }
.tabbar a { flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:9px 0 7px; font-size:10.5px; color:var(--mut); }
.tabbar a .i { font-size:20px; line-height:1; filter:grayscale(1) brightness(1.4); }
.tabbar a.on { color:var(--gold); }
.tabbar a.on .i { filter:none; }

/* Главная */
.hello { padding:6px 0 14px; }
.hello h1 { font-size:24px; font-weight:800; letter-spacing:-.02em; margin:0 0 2px; }
.hello h1 em { font-family:'Playfair Display', serif; font-style:italic; color:var(--gold); font-weight:600; }
.aibox { display:flex; gap:8px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:8px; margin-bottom:18px; }
.aibox input { flex:1; background:none; border:0; outline:none; color:var(--fg); font:inherit; font-size:14.5px; padding-left:8px; min-width:0; }
.aibox input::placeholder { color:var(--mut); }
.aibox button { background:var(--gold); color:#1A2430; font:inherit; font-weight:700; font-size:13.5px; border:0; border-radius:10px; padding:10px 16px; }
.sect { display:flex; justify-content:space-between; align-items:baseline; margin:4px 0 12px; }
.sect h2 { font-size:16.5px; font-weight:700; margin:0; }
.sect a { font-size:12.5px; color:var(--teal); }
.cats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:22px; }
.cat-i { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 6px; text-align:center; font-size:11px; color:var(--mut); }
.cat-i .e { display:block; font-size:22px; margin-bottom:5px; }
.cat-i.on { border-color:var(--gold); color:var(--fg); }
.hscroll { display:flex; gap:12px; overflow-x:auto; scrollbar-width:none; margin:0 -16px 22px; padding:0 16px 4px; scroll-snap-type:x mandatory; }
.hscroll::-webkit-scrollbar { display:none; }
.bigcard { flex:0 0 240px; scroll-snap-align:start; background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; position:relative; }
.bigcard img { width:100%; height:140px; object-fit:cover; display:block; }
.bigcard .b { padding:10px 12px 12px; }
.bigcard h3 { font-size:13.5px; font-weight:600; margin:0 0 3px; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:37px; }
.bigcard .p { color:var(--gold); font-size:14.5px; }
.bigcard .d { font-size:11.5px; color:var(--mut); }

/* Список карточек */
.rowcard { display:grid; grid-template-columns:112px 1fr; gap:12px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-bottom:12px; position:relative; }
.rowcard { align-items:stretch; }
.rowcard img { width:112px; height:122px; object-fit:cover; }
.rowcard .b { padding:10px 12px 10px 0; }
.rowcard h3 { font-size:13.5px; font-weight:600; margin:0 0 3px; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:37px; }
.rowcard .p { color:var(--gold); font-size:14.5px; }
.rowcard .fv { position:absolute; right:8px; top:8px; background:rgba(10,20,32,.6); border:0; border-radius:50%; width:30px; height:30px; color:#fff; font-size:15px; display:flex; align-items:center; justify-content:center; }
.rowcard .fv.on { color:var(--danger); }
.chips { display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; margin:0 -16px 14px; padding:2px 16px; }
.chips::-webkit-scrollbar { display:none; }
.chips button { flex-shrink:0; background:var(--card); border:1px solid var(--line); color:var(--mut); font:inherit; font-size:12.5px; border-radius:999px; padding:8px 14px; }
.chips button.on { background:var(--gold); border-color:var(--gold); color:#1A2430; font-weight:700; }
.frow { display:flex; gap:8px; margin-bottom:14px; }
.frow select, .frow input { flex:1; background:var(--card); border:1px solid var(--line); color:var(--fg); font:inherit; font-size:13px; border-radius:10px; padding:9px 10px; min-width:0; }

/* Экран объекта */
#s-obj { padding:0; }
.gal { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.gal::-webkit-scrollbar { display:none; }
.gal img { flex:0 0 100%; height:280px; object-fit:cover; scroll-snap-align:start; }
.obj-body { padding:16px; }
.back { position:absolute; top:14px; left:14px; z-index:5; background:rgba(10,20,32,.65); backdrop-filter:blur(6px); border:0; color:#fff; width:36px; height:36px; border-radius:50%; font-size:17px; }
.obj-head h1 { font-size:19px; font-weight:800; margin:0 0 4px; line-height:1.3; }
.obj-price { color:var(--gold); font-size:22px; margin:8px 0 12px; }
.badges { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.badge { font-size:11px; background:var(--card2); border:1px solid var(--line); color:var(--mut); border-radius:6px; padding:3px 8px; }
.badge.g { color:var(--gold); border-color:rgba(232,193,112,.4); }
.facts { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:6px 14px; margin-bottom:16px; }
.facts .fr { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); font-size:13.5px; }
.facts .fr:last-child { border-bottom:0; }
.facts .l { color:var(--mut); } .facts .v { font-weight:600; text-align:right; }
.desc { color:#C7D2DC; font-size:14px; line-height:1.65; margin-bottom:18px; }
.aiex { background:linear-gradient(140deg, #14262E, #10202C); border:1px solid rgba(61,189,179,.35); border-radius:var(--r); padding:14px; margin-bottom:18px; }
.aiex h3 { font-size:14.5px; margin:0 0 4px; }
.aiex .hint { font-size:12px; color:var(--mut); margin:0 0 10px; }
.aiex .dlg { display:flex; flex-direction:column; gap:7px; margin-bottom:10px; max-height:240px; overflow-y:auto; }
.aiex .dlg:empty { display:none; }
.msg { border-radius:11px; padding:8px 11px; font-size:12.5px; line-height:1.45; max-width:88%; }
.msg.u { background:var(--gold); color:#1A2430; align-self:flex-end; font-weight:500; }
.msg.b { background:var(--card2); align-self:flex-start; }
.msg.b a { color:var(--teal); text-decoration:underline; }
.aiex .qs { display:flex; gap:6px; flex-wrap:wrap; }
.aiex .qs button { background:none; border:1px solid rgba(61,189,179,.5); color:var(--teal); font:inherit; font-size:11.5px; border-radius:999px; padding:6px 11px; }
.cta-bar { position:sticky; bottom:76px; padding:10px 0 14px; background:linear-gradient(180deg, transparent, var(--bg) 40%); }
.btn-g { width:100%; background:var(--gold); color:#1A2430; border:0; border-radius:13px; font:inherit; font-size:15.5px; font-weight:800; padding:15px; }
.partner-line { font-size:12.5px; color:var(--mut); margin-bottom:14px; }
.partner-line b { color:var(--fg); }

/* Заявки / чат */
.lead-card { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:14px; margin-bottom:12px; }
.lead-card .st { display:inline-block; font-size:11px; background:rgba(76,192,119,.15); color:var(--ok); border-radius:6px; padding:3px 8px; margin-bottom:8px; }
.lead-card h3 { font-size:14px; margin:0 0 3px; }
.lead-card .btn-chat { margin-top:10px; background:var(--card2); border:1px solid var(--line); color:var(--fg); font:inherit; font-size:12.5px; border-radius:9px; padding:8px 14px; }
.empty { text-align:center; padding:56px 20px; color:var(--mut); }
.empty .e { font-size:40px; display:block; margin-bottom:10px; }

/* Профиль */
.prof-head { display:flex; gap:14px; align-items:center; padding:8px 0 18px; }
.prof-head .ava { width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg, var(--gold), #8A6420); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:20px; color:#1A2430; }
.plist { background:var(--card); border:1px solid var(--line); border-radius:var(--r); margin-bottom:14px; overflow:hidden; }
.plist .pi { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 14px; border-bottom:1px solid var(--line); font-size:14px; }
.plist .pi:last-child { border-bottom:0; }
.plist .pi select { background:var(--card2); color:var(--fg); border:1px solid var(--line); border-radius:8px; font:inherit; font-size:12.5px; padding:5px 8px; }

/* Шторка формы заявки */
.sheet-ov { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:90; display:none; }
.sheet-ov.open { display:block; }
.sheet { position:fixed; bottom:0; left:50%; transform:translate(-50%,105%); width:100%; max-width:480px; background:var(--card); border-radius:22px 22px 0 0; padding:18px 18px calc(22px + env(safe-area-inset-bottom)); z-index:100; transition:transform .25s ease; }
.sheet.open { transform:translate(-50%,0); }
.sheet .grip { width:44px; height:4px; border-radius:2px; background:var(--line); margin:0 auto 14px; }
.sheet h3 { margin:0 0 12px; font-size:16.5px; }
.sheet input[type=text], .sheet input[type=tel] { width:100%; background:var(--card2); border:1px solid var(--line); border-radius:11px; color:var(--fg); font:inherit; font-size:14.5px; padding:12px 13px; margin-bottom:9px; }
.sheet .msgr { display:flex; gap:6px; background:var(--card2); border-radius:11px; padding:4px; margin-bottom:11px; }
.sheet .msgr button { flex:1; background:none; border:0; border-radius:8px; color:var(--mut); font:inherit; font-size:12.5px; font-weight:600; padding:9px 4px; }
.sheet .msgr button.on { background:var(--gold); color:#1A2430; }
.sheet .agree { display:flex; gap:8px; align-items:flex-start; font-size:11.5px; color:var(--mut); margin:10px 0 0; }
.sheet .agree input { accent-color:var(--gold); margin-top:2px; }
.sheet .okpane { text-align:center; padding:22px 6px; }
.sheet .okpane .ic { width:54px; height:54px; border-radius:50%; background:rgba(76,192,119,.15); color:var(--ok); font-size:24px; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
