html{-webkit-text-size-adjust:100%}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}

/* Layout: phone-first app — white top bar with brand logo, one column of steps, sticky action bar under the thumb; dashboard grid on wide screens. Single light theme in the developer's white + orange + graphite brand. */
:root{
  color-scheme:light;
  --bg:#F5F4F2; --surface:#FFFFFF; --ink:#3A3A3C; --graphite:#0B0B0C; --muted:#77777A; --line:#E6E3DF;
  --orange:#1F1F22; --orange-deep:#1F1F22; --orange-soft:#ECECE6; --accent-text:#1F1F22; --on-accent:#D4FF3A; --teal:#4FA3A5;
  --good:#2E8B57; --good-soft:#E3F3E9; --bad:#D2452F; --bad-soft:#FCE8E4;
  --gold:#E3B341; --silver:#B9BEC6; --bronze:#C98A4B; --on-medal:#1F1F22;
  --font:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:16px;
}
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2;color:var(--graphite)}
h1{font-weight:800;font-size:clamp(22px,5.4vw,30px);letter-spacing:-.01em}
h2{font-weight:800;font-size:19px}
h3{font-size:17px;font-weight:700}
p{margin:0}
button{font:inherit;cursor:pointer;color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
a{color:var(--accent-text,var(--orange-deep))}
.wrap{max-width:1040px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.o{color:var(--orange)}

/* top bar */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:10px;padding-block:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0}
.brand img{height:30px;width:auto;display:block}
.brand span{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;border-left:1px solid var(--line);padding-left:10px;line-height:1.2}
.demo{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));padding:4px 8px;border-radius:6px}
.seg{display:flex;background:var(--bg);border-radius:999px;padding:3px;border:1px solid var(--line)}
.seg button{border:0;background:transparent;padding:7px 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--graphite);color:#fff}

main{padding-block:20px 40px}
.view{display:flex;flex-direction:column;gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.muted{color:var(--muted)}
.small{font-size:13px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.btn{border:0;border-radius:14px;padding:14px 20px;font-weight:800;font-size:16px;background:var(--orange-deep);color:var(--on-accent,#fff);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:50px}
.btn.wide{width:100%}
.btn.ghost{background:var(--surface);color:var(--graphite);border:1.5px solid var(--line)}
.btn.dark{background:var(--graphite)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--bg);color:var(--muted);white-space:nowrap}
.chip.ok{background:var(--good-soft);color:var(--good)}
.chip.go{background:var(--orange-soft);color:var(--accent-text,var(--orange-deep))}
.chip.no{background:var(--bad-soft);color:var(--bad)}
.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--graphite);color:#fff;padding:11px 16px;border-radius:12px;font-weight:600;font-size:14px;z-index:20;max-width:calc(100% - 32px)}

/* sticky action bar */
.actionbar{position:sticky;bottom:0;z-index:4;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(to top,var(--bg) 70%,transparent);display:flex;gap:10px}
.actionbar .btn{flex:1}

/* login */
.login{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:820px){.login{grid-template-columns:1.1fr 1fr;align-items:start}}
.hero{background:var(--graphite);color:#fff;border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
.hero h1{color:#fff}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;border:34px solid var(--orange);border-left-color:transparent;border-bottom-color:transparent;transform:rotate(45deg);opacity:.95}
.hero > *{position:relative;z-index:1;max-width:46ch}
.hero p{opacity:.88}
.hero ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.hero li{display:flex;gap:12px;align-items:center;font-weight:600}
.hero li i{font-style:normal;font-weight:800;font-size:13px;width:28px;height:28px;border-radius:50%;background:var(--orange);display:grid;place-items:center;flex:none;color:var(--graphite)}
form{display:grid;gap:14px}
label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--graphite)}
input,select{font:inherit;font-size:16px;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;color:var(--ink)}
.check input{width:20px;height:20px;margin-top:1px;accent-color:var(--orange-deep);flex:none}

/* home */
.hello{display:flex;gap:16px;align-items:center}
.ring{--p:0;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--orange) calc(var(--p)*1%),var(--line) 0);display:grid;place-items:center;flex:none}
.ring span{width:56px;height:56px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-weight:800;font-variant-numeric:tabular-nums;color:var(--graphite)}
.resume{display:flex;gap:12px;align-items:center;background:var(--orange-soft);border:0;border-radius:var(--r);padding:14px 16px;text-align:left;width:100%}
.resume b{display:block;color:var(--graphite)}
.resume .arr{margin-left:auto;font-size:22px;color:var(--accent-text,var(--orange-deep));font-weight:800}
.courses{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.course{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0;overflow:hidden}
.course:hover{border-color:var(--orange)}
.cover{min-height:92px;position:relative;padding:14px 16px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;overflow:hidden}
.cover::after{content:"";position:absolute;right:-28px;top:-28px;width:96px;height:96px;border-radius:50%;border:16px solid rgba(255,255,255,.28);border-left-color:transparent;border-bottom-color:transparent;transform:rotate(45deg)}
.cover b{font-weight:800;font-size:19px;position:relative;z-index:1}
.cover small{position:relative;z-index:1;font-weight:600;opacity:.9;font-size:12px}
.course .body{padding:14px 16px 16px;display:grid;gap:10px}
.track{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.track i{display:block;height:100%;background:var(--orange);border-radius:6px}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.cert{border:2px solid var(--orange);background:var(--surface);border-radius:var(--r);padding:16px;width:100%;max-width:480px;text-align:left;display:grid;gap:4px;position:relative;overflow:hidden}
.cert::after{content:"";position:absolute;right:-30px;bottom:-30px;width:90px;height:90px;border-radius:50%;border:14px solid var(--orange-soft)}

/* course */
.back{border:0;background:none;color:var(--muted);font-weight:700;padding:4px 0;align-self:flex-start}
.steps{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.steps::-webkit-scrollbar{display:none}
.steps button{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700;display:flex;gap:7px;align-items:center;color:var(--graphite)}
.steps button[aria-current="true"]{background:var(--graphite);color:#fff;border-color:var(--graphite)}
.steps button .d{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;display:grid;place-items:center;font-size:10px;line-height:1}
.steps button.done .d{background:var(--orange);border-color:var(--orange);color:#fff}
.video{border-radius:var(--r);overflow:hidden;position:relative;aspect-ratio:16/9;max-width:100%;display:grid;place-items:center;text-decoration:none;color:#fff}
.video .play{width:70px;height:70px;border-radius:50%;background:#fff;display:grid;place-items:center;position:relative;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.video .play::after{content:"";border-left:22px solid var(--orange-deep);border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:6px}
.video .cap{position:absolute;left:16px;bottom:12px;right:16px;font-weight:700;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.swipe{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));scrollbar-width:none}
.swipe::-webkit-scrollbar{display:none}
@media(min-width:820px){.swipe{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;margin-inline:0;padding-inline:0}}
.fact{flex:0 0 82%;scroll-snap-align:center;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r);padding:18px;text-align:left;min-height:170px;display:flex;flex-direction:column;gap:10px}
.fact .n{font-size:12px;font-weight:800;color:var(--accent-text,var(--orange-deep))}
.fact .q{font-weight:800;font-size:17px;color:var(--graphite)}
.fact .a{color:var(--muted)}
.fact .hint{margin-top:auto;font-size:12px;font-weight:700;color:var(--accent-text,var(--orange-deep))}
.fact.open{border-color:var(--orange);background:var(--orange-soft)}
.fact.open .a{color:var(--ink)}
.counter{font-size:13px;font-weight:700;color:var(--muted)}
.people{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.person{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--surface);min-width:0}
.ava{width:60px;height:60px;border-radius:50%;object-fit:cover;flex:none;background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));display:grid;place-items:center;font-weight:800;font-size:18px}
.person > div{min-width:0;flex:1}
.person b{display:block;color:var(--graphite)}
.tel{font-variant-numeric:tabular-nums;user-select:all;font-weight:600}
.copy{border:1.5px solid var(--line);background:var(--surface);border-radius:10px;font-weight:700;font-size:12px;padding:8px 10px;color:var(--graphite);flex:none}
.partner{border:2px solid var(--orange)}
.pdfcard{display:grid;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pdfcard .cover{min-height:140px}
.pdfcard .inner{padding:0 18px 18px;display:grid;gap:12px}

/* quiz */
.qwrap{display:grid;gap:14px;max-width:680px}
.opts{display:grid;gap:10px}
.opt{text-align:left;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:15px 16px;font-weight:600;font-size:15px;min-height:54px}
.opt:hover:not(:disabled){border-color:var(--orange)}
.opt.right{border-color:var(--good);background:var(--good-soft)}
.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}
.explain{border-radius:14px;padding:13px 15px;background:var(--bg);font-size:14px}
.result{text-align:center;display:grid;gap:12px;justify-items:center;padding-block:8px}
.big{font-size:60px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}

/* admin */
.kpis{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:2px}
.kpi b{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--graphite)}
.kpi.hl{background:var(--graphite);border-color:var(--graphite)}
.kpi.hl b,.kpi.hl .eyebrow,.kpi.hl .small{color:#fff}
.kpi.hl b{color:var(--orange)}
.grid2{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:900px){.grid2{grid-template-columns:1fr 1fr}}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters input,.filters select{width:auto;flex:1 1 160px;padding:11px 12px;font-size:15px}
.tablebox{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:740px;font-size:14px}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;cursor:pointer;user-select:none}
td.num,th.num{font-variant-numeric:tabular-nums;text-align:right}
tr.me td{background:var(--orange-soft)}
.dots{display:flex;gap:4px}
.dots i{width:13px;height:13px;border-radius:4px;background:var(--line)}
.dots i.p{background:var(--good)}.dots i.f{background:var(--bad)}
.barlist{display:grid;gap:12px}
.bl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;font-size:14px}
.bl .track{grid-column:1/-1;height:8px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend span{display:flex;gap:5px;align-items:center}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.note{font-size:12px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.track i{transition:width .5s ease}.opt,.fact{transition:background .15s,border-color .15s}}
[hidden]{display:none!important}
/* ---- app shell: bottom tab bar ---- */
body.nav main{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));display:grid;grid-template-columns:repeat(5,1fr)}
.tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:10.5px;font-weight:700;color:var(--muted);position:relative}
.tabbar svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tabbar button[aria-current="page"]{color:var(--accent-text,var(--orange-deep))}
.tabbar .badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:17px;height:17px;border-radius:9px;background:var(--bad);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 4px}
@media(min-width:820px){.tabbar{left:50%;right:auto;transform:translateX(-50%);width:560px;border:1px solid var(--line);border-radius:18px 18px 0 0}}

/* ---- push banner ---- */
.push{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;transform:translateX(-50%);width:min(420px,calc(100% - 20px));z-index:30;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:11px 13px;display:flex;gap:11px;align-items:flex-start;text-align:left}
.push .ic{width:38px;height:38px;border-radius:10px;background:var(--orange);display:grid;place-items:center;flex:none;color:#fff;font-weight:800;font-size:18px}
.push b{display:block;font-size:13px;color:var(--graphite)}
.push span{font-size:13px;color:var(--ink);display:block}
.push small{font-size:11px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.push{animation:drop .45s cubic-bezier(.2,.9,.3,1.2)}@keyframes drop{from{transform:translate(-50%,-130%)}to{transform:translate(-50%,0)}}}

/* ---- bottom sheet ---- */
.sheet{position:fixed;inset:0;z-index:25;background:rgba(30,30,32,.45);display:flex;align-items:flex-end;justify-content:center}
.sheet .panel{background:var(--surface);width:100%;max-width:560px;max-height:90vh;overflow:auto;border-radius:22px 22px 0 0;padding:10px max(18px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));display:grid;gap:14px}
.sheet .grab{width:42px;height:5px;border-radius:3px;background:var(--line);justify-self:center}
@media (prefers-reduced-motion:no-preference){.sheet .panel{animation:up .3s ease}@keyframes up{from{transform:translateY(40%)}to{transform:none}}}

/* ---- promos ---- */
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700;color:var(--graphite)}
.chips button[aria-pressed="true"]{background:var(--graphite);border-color:var(--graphite);color:#fff}
.promos{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.promo{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0;overflow:hidden;position:relative}
.promo .cover{min-height:84px}
.promo .body{padding:13px 16px 15px;display:grid;gap:8px}
.promo .t{font-weight:800;font-size:16px;color:var(--graphite);line-height:1.25}
.promo .new{position:absolute;top:10px;right:10px;z-index:2;background:#fff;color:var(--bad);font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px}
.promo.locked{opacity:.75}
.price-old{text-decoration:line-through;color:var(--muted);font-weight:600}
.price{font-size:22px;font-weight:800;color:var(--accent-text,var(--orange-deep));font-variant-numeric:tabular-nums}
.conds{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.conds li{display:flex;gap:10px;align-items:flex-start}
.conds li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);flex:none;margin-top:7px}
.post{white-space:pre-wrap;background:var(--bg);border-radius:14px;padding:14px;font-size:14px;line-height:1.5;border:1px solid var(--line);user-select:all}
.understood{display:flex;gap:10px;align-items:center;background:var(--good-soft);color:var(--good);border-radius:12px;padding:11px 14px;font-weight:700}

/* ---- admin ---- */
.atabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.atabs button{flex:none;border:0;background:none;padding:8px 2px;margin-right:14px;font-weight:800;font-size:15px;color:var(--muted);border-bottom:3px solid transparent}
.atabs button[aria-current="page"]{color:var(--graphite);border-bottom-color:var(--orange)}
.pstat{display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.funnel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.funnel div{background:var(--bg);border-radius:12px;padding:10px;display:grid;gap:2px}
.funnel b{font-size:22px;font-weight:800;color:var(--graphite);font-variant-numeric:tabular-nums}
.funnel span{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
textarea{font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-height:110px;resize:vertical}
.radios{display:grid;gap:8px}
.radios label{display:flex;gap:10px;align-items:center;font-weight:600;border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--surface)}
.radios input{width:18px;height:18px;accent-color:var(--orange-deep);margin:0}
.preview{background:var(--graphite);border-radius:var(--r);padding:16px;display:grid;gap:8px}
.preview .push{position:static;transform:none;width:100%;animation:none;box-shadow:none}
.soon{display:grid;gap:12px;justify-items:start}
.soon ul{margin:0;padding-left:18px;display:grid;gap:6px}
.lock{display:flex;gap:10px;align-items:center;background:var(--orange-soft);border-radius:12px;padding:11px 14px;font-weight:600;color:var(--graphite)}
/* ---- flats & selections ---- */
.flats{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.flat{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;min-width:0}
.flat.dim{opacity:.6}
.fl-open{flex:1;min-width:0;display:flex;gap:12px;align-items:center;border:0;background:none;padding:0;text-align:left}
.plan{width:52px;height:52px;border-radius:12px;background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));display:grid;place-items:center;flex:none}
.fl-main{display:grid;gap:2px;min-width:0}
.fl-main b{color:var(--graphite)}
.fl-price{font-weight:800;color:var(--graphite);font-variant-numeric:tabular-nums}
.fl-side{display:grid;gap:8px;justify-items:end;flex:none}
.pick{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--orange-deep);background:var(--surface);color:var(--accent-text,var(--orange-deep));font-size:22px;font-weight:700;display:grid;place-items:center;line-height:1}
.pick.on{background:var(--orange-deep);color:var(--on-accent,#fff)}
.planbig{display:grid;justify-items:center;gap:6px;padding:18px;background:var(--orange-soft);border-radius:var(--r);color:var(--accent-text,var(--orange-deep))}
.planbig svg{width:110px;height:110px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px}
.kv span{color:var(--muted)}.kv b{text-align:right;color:var(--graphite)}
.clientpage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:grid;gap:14px}
.cp-head{display:flex;justify-content:space-between;align-items:center}.cp-head img{height:26px;width:auto}
.clientpage .flat{background:var(--bg);border:0}
.realtor{display:flex;gap:12px;align-items:center;background:var(--graphite);color:#fff;border-radius:var(--r);padding:14px}
.realtor > div{min-width:0}
.realtor b{display:block;color:#fff;font-size:16px}.realtor .eyebrow{color:var(--orange)}
.sel-list{display:grid;gap:8px}
.sel-item{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;text-align:left}
.sel-item b{display:block;color:var(--graphite)}.sel-item .arr{color:var(--accent-text,var(--orange-deep));font-weight:800;font-size:20px}
.sel-item .ava{width:44px;height:44px;font-size:15px}
.kpis.three{grid-template-columns:repeat(3,1fr)}
.cell{padding:6px 8px;font-size:14px;width:120px;border-radius:8px}
select.cell{width:auto}
.ed{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}
.opt-ed{display:flex;gap:8px;align-items:center;font-weight:500}
.opt-ed input[type=radio]{width:18px;height:18px;flex:none;accent-color:var(--good);margin:0}
.btn:disabled{opacity:.45;cursor:not-allowed}
/* ---- calculator ---- */
.calc{display:grid;gap:14px}
.range{display:grid;gap:6px}
.range label{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
input[type=range]{width:100%;accent-color:var(--orange-deep);padding:0;border:0;background:none;height:28px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);height:50px}
.stepper button{width:44px;height:100%;border:0;background:none;font-size:22px;font-weight:700;color:var(--accent-text,var(--orange-deep))}
.stepper output{flex:1;text-align:center;font-size:17px;font-weight:800;color:var(--graphite)}
.result-card{background:var(--graphite);color:#fff;border-radius:var(--r);padding:18px;display:grid;gap:10px}
.result-card .eyebrow{color:var(--orange)}
.pay{font-size:38px;font-weight:800;color:var(--orange);font-variant-numeric:tabular-nums;line-height:1.1}
.kv.light span{color:rgba(255,255,255,.72)}.kv.light b{color:#fff}
.cmp{display:grid;gap:6px;text-align:left;border:1.5px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.cmp.on{border-color:var(--orange);background:var(--orange-soft)}
.cmp b{color:var(--graphite)}
.grid3{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* ---- fixation timeline ---- */
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}
.timeline li{display:flex;gap:12px;align-items:center;padding:8px 0;position:relative;color:var(--muted);font-weight:600}
.timeline li span{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:var(--surface);flex:none;position:relative;z-index:1}
.timeline li:not(:last-child)::after{content:"";position:absolute;left:8px;top:26px;bottom:-10px;width:2px;background:var(--line)}
.timeline li.done{color:var(--graphite)}
.timeline li.done span{background:var(--good);border-color:var(--good)}
.timeline li.done:not(:last-child)::after{background:var(--good)}
.timeline li.now{color:var(--graphite);font-weight:800}
.timeline li.now span{border-color:var(--orange-deep);box-shadow:0 0 0 4px var(--orange-soft)}
.kv .tel{white-space:nowrap}
/* ---- level, rating, notifications ---- */
.level{background:var(--graphite);color:#fff;border-radius:var(--r);padding:18px;display:grid;gap:12px}
.level h2{color:#fff;font-size:24px}.level .eyebrow{color:var(--orange)}
.level .track{background:rgba(255,255,255,.18);height:8px}
.pts{display:grid;justify-items:end;line-height:1.1}.pts b{font-size:30px;font-weight:800;color:var(--orange);font-variant-numeric:tabular-nums}.pts span{font-size:12px;opacity:.75}
.lvls{display:flex;gap:6px;flex-wrap:wrap}
.lvls span{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}
.lvls span.on{background:var(--orange);color:var(--graphite)}
.board{display:grid;gap:4px}
.br{display:flex;gap:12px;align-items:center;padding:9px 10px;border-radius:12px}
.br.me{background:var(--orange-soft)}
.br.gap{justify-content:center;color:var(--muted);padding:2px}
.br .pl{width:26px;text-align:center;font-weight:800;color:var(--muted);flex:none}
.br .nm{flex:1;min-width:0;display:grid}.br .nm b{color:var(--graphite)}
.br > b{font-variant-numeric:tabular-nums;color:var(--graphite)}
.earn{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-weight:600}
.earn:last-child{border-bottom:0}
.earn b{min-width:44px;text-align:right;color:var(--accent-text,var(--orange-deep))}
.conn{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.conn-b{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:12px;display:grid;gap:2px;text-align:left}
.conn-b b{color:var(--graphite)}.conn-b span{color:var(--accent-text,var(--orange-deep));font-weight:700}
.conn-b.on{border-color:var(--good);background:var(--good-soft)}.conn-b.on span{color:var(--good)}
.switch{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;cursor:pointer}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch i{width:46px;height:28px;border-radius:14px;background:var(--line);position:relative;flex:none;transition:background .2s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.switch input:checked + i{background:var(--good)}
.switch input:checked + i::after{transform:translateX(18px)}
.switch input:focus-visible + i{outline:3px solid var(--orange);outline-offset:2px}
.steps-ol{margin:0;padding-left:20px;display:grid;gap:8px}
.code{background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));padding:2px 8px;border-radius:6px;letter-spacing:.1em}
/* ---- course modules, lessons, slides ---- */
.mods{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mods button{width:100%;display:flex;gap:12px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.mods button.next{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}
.mods .mi{width:34px;height:34px;border-radius:50%;background:var(--bg);color:var(--graphite);display:grid;place-items:center;font-weight:800;flex:none;font-size:14px}
.mods .done .mi{background:var(--good);color:#fff}
.mods .mt{flex:1;min-width:0;display:grid}.mods .mt b{color:var(--graphite)}
.mods .arr{color:var(--muted);font-size:22px}
.gal{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.gal::-webkit-scrollbar{display:none}
.gimg{flex:0 0 88%;scroll-snap-align:center;border:0;padding:0;background:var(--surface);border-radius:14px;overflow:hidden;position:relative;box-shadow:0 1px 0 var(--line)}
.gimg img{display:block;width:100%;height:auto}
.gal .gimg:only-child{flex-basis:100%}
@media(min-width:820px){.gimg{flex-basis:60%}}
.deck{display:grid;gap:12px}
.deck .gimg{flex:none;width:100%}
.deck .pg{position:absolute;right:10px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:3px 9px}
.zoom{position:fixed;inset:0;z-index:40;background:rgba(20,20,22,.94);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:14px;align-content:center}
.zoom img{max-width:100%;max-height:78vh;border-radius:10px}
.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.video .play,.video .cap{z-index:1}
.lesson{display:grid;gap:14px}.lesson p{font-size:16px;line-height:1.55}
.sell{background:var(--graphite);color:#fff;border-radius:var(--r);padding:16px 18px;display:grid;gap:6px}
.sell .eyebrow{color:var(--orange)}.sell p{font-weight:600}
.opt.sel{border-color:var(--orange-deep);background:var(--orange-soft)}
.opt.multi{display:flex;gap:10px;align-items:center}
.opt .box{width:22px;height:22px;border-radius:6px;border:2px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:800;flex:none;background:var(--surface)}
.opt.sel .box{border-color:var(--orange-deep);color:var(--accent-text,var(--orange-deep))}
.opt.right .box{border-color:var(--good);color:var(--good)}
.review{display:grid;gap:3px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.review:last-child{border-bottom:0;padding-bottom:0}
.review b{color:var(--graphite)}
details.ed summary{cursor:pointer;list-style:none}
details.ed summary::-webkit-details-marker{display:none}
details.ed[open] summary{margin-bottom:8px}
/* ---- reference ---- */
.search{display:flex;gap:10px;align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:0 14px;color:var(--muted)}
.search input{border:0;background:none;padding:13px 0}
.search:focus-within{border-color:var(--orange)}
.search input:focus-visible{outline:none}
.refsec{display:grid;gap:0;padding-block:14px}
.refsec h3{margin-bottom:6px}
.refrow{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}
.refrow:last-child{border-bottom:0}
.refrow .rk{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.refrow .rv{font-size:15px;color:var(--ink)}
.refrow.fresh{background:linear-gradient(90deg,var(--orange-soft),transparent);margin-inline:-18px;padding-inline:18px}
.upd{display:grid;gap:10px}.upd div{display:grid}.upd b{color:var(--graphite)}
.chips .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bad);vertical-align:middle;font-style:normal}
.mebtn{width:36px;height:36px;border-radius:50%;border:0;background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));font-weight:800;font-size:13px;flex:none}
/* ---- build, visits, stories, analytics ---- */
.buildcard{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--graphite);color:#fff;border:0;border-radius:var(--r);padding:14px 16px;text-align:left;width:100%}
.buildcard b{display:block;color:#fff;font-size:16px}
.ring.sm{width:54px;height:54px}.ring.sm span{width:42px;height:42px;font-size:13px}
.buildcard .ring span{background:var(--graphite);color:#fff}
.refact{display:grid;gap:10px}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.photos img,.ph-empty{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:grid;place-items:center;background:repeating-linear-gradient(45deg,var(--bg),var(--bg) 8px,var(--line) 8px,var(--line) 16px);color:var(--muted);font-size:11px;font-weight:700;text-align:center;padding:4px}
.tours{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.tour{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:6px}
.tour b{color:var(--graphite)}
.sel-item .ava{font-size:12px}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slots button{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 4px;font-weight:700;color:var(--graphite);display:grid;gap:2px}
.slots button small{font-size:10px;color:var(--muted);font-weight:600}
.slots button[aria-pressed="true"]{background:var(--orange-deep);border-color:var(--orange-deep);color:var(--on-accent,#fff)}
.slots button:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}
img.story{width:100%;max-width:320px;justify-self:center;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.funnel5{display:grid;gap:8px}
.funnel5 div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;position:relative;padding:10px 12px;border-radius:10px;overflow:hidden}
.funnel5 i{position:absolute;left:0;top:0;bottom:0;width:var(--w);background:var(--orange-soft);border-radius:10px}
.funnel5 span,.funnel5 b,.funnel5 small{position:relative}
.funnel5 b{font-size:18px;color:var(--graphite);font-variant-numeric:tabular-nums}
.funnel5 small{color:var(--muted);font-weight:700;min-width:36px;text-align:right}
.funnel5 div:first-child small{display:none}
.agroups{margin-top:2px}
section.kpi.hl b{color:var(--orange)}

.vplayer{width:100%;border-radius:var(--r);background:#000;max-height:70vh}
a.tel{color:var(--ink);text-decoration:none;display:block}
a.chip{color:var(--graphite)}

/* ---- Первичка: оболочка и застройщики ---- */
.brand .mark{height:34px;width:34px;border-radius:9px}
.brand .word{font-family:"Unbounded",var(--font);font-size:19px;font-weight:800;color:var(--graphite);letter-spacing:-.03em;line-height:1}
.brand .word i{font-style:normal;color:var(--volt-dot,var(--graphite))}
.brand .tname{font-size:15px;font-weight:800;color:var(--graphite);max-width:46vw;line-height:1.15}
.hbtns{display:flex;gap:8px;align-items:center}
.swbtn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);display:grid;place-items:center;position:relative;color:var(--graphite);flex:none}
.swbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9}
.swbtn .dot{position:absolute;top:-1px;right:-1px;width:11px;height:11px;border-radius:50%;background:var(--bad);border:2px solid var(--surface)}
.devs{display:grid;gap:10px}
.dev{display:flex;gap:14px;align-items:center;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--dc,var(--orange));border-radius:var(--r);padding:14px}
.dev .dmain{display:grid;gap:2px;flex:1;min-width:0}
.dev .dmain b{color:var(--graphite);font-size:16px}
.dev .arr{font-size:24px;color:var(--muted)}
.dlogo{width:56px;height:56px;border-radius:14px;flex:none;display:grid;place-items:center;background:#fff;border:1px solid var(--line);overflow:hidden;font-weight:800;font-size:18px}
.dlogo img{max-width:88%;max-height:70%;object-fit:contain}

/* ---- «Вольт»: тёмная оболочка Первички (вход, мои застройщики, каталог) ---- */
html.volt{
  color-scheme:dark;
  --bg:#0B0B0C; --surface:#18181B; --ink:#F4F4EE; --graphite:#F4F4EE; --muted:#A1A19A; --line:#2A2A2E;
  --orange:#D4FF3A; --orange-deep:#D4FF3A; --on-accent:#0B0B0C; --orange-soft:#2A2A2E; --accent-text:#D4FF3A;
  --volt-dot:#D4FF3A; --bad-soft:#3A1E1A; --bad:#FF8A73;
}
html.volt .top{background:#0B0B0C;border-bottom-color:#1E1E21}
html.volt h1,html.volt h2{font-family:"Unbounded",var(--font);letter-spacing:-.03em}
html.volt .hero{background:#18181B;color:#F4F4EE}
html.volt .btn.ghost{background:transparent;color:#F4F4EE;border-color:#3A3A3E}
html.volt .toast{background:#F4F4EE;color:#0B0B0C}
html.volt .dev{border-left-width:1px}
html.volt .dev .chip.no{background:#D4FF3A;color:#0B0B0C}
html.volt .mebtn{background:#2A2A2E;color:#F4F4EE}
html.volt .swbtn{background:#18181B;border-color:#2A2A2E;color:#F4F4EE}
html.volt input::placeholder{color:#7C7C76}
html.volt .hero::after{width:22px;height:22px;border:0;border-radius:0;background:#D4FF3A;right:24px;top:24px;transform:none;opacity:1}

/* ---------- этап 3: квартиры, шахматка, подборка ---------- */
:root{--warn:#9A6200;--warn-soft:#FCEFD6}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.upd{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted);margin-top:4px}
.upd i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}
.upd.ok i{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.upd.old i{background:var(--warn)}
.back{border:0;background:none;padding:0 0 4px;font:inherit;font-size:14px;font-weight:700;color:var(--accent-text,var(--orange-deep))}
.projs{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.proj{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0;overflow:hidden}
.proj:hover{border-color:var(--orange)}
.proj .cover{min-height:92px;padding:14px 16px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}
.proj .cover small{font-size:11px;font-weight:700;opacity:.9}
.proj .cover b{font-size:20px;font-weight:800}
.proj .body{padding:12px 16px 14px;display:grid;gap:6px}
.proj .big{font-size:17px;color:var(--graphite)}
.rooms{display:flex;gap:4px}
.rooms i{font-style:normal;font-size:11px;font-weight:800;min-width:24px;height:24px;padding:0 5px;border-radius:7px;background:var(--orange-soft);color:var(--accent-text,var(--orange-deep));display:grid;place-items:center}
.fbar{display:grid;gap:8px}
.fbar .seg{justify-self:start}
.seg button{border:0;background:none;border-radius:999px;padding:7px 15px;font:inherit;font-size:13px;font-weight:700;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--graphite);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.chips select{flex:none;width:auto;font-size:13px;font-weight:700;padding:6px 10px;border-radius:999px;background:var(--surface);color:var(--graphite)}
.chess{display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.chess h3{margin:0}
.fboard{overflow-x:auto;display:grid;gap:4px;padding-bottom:4px}
.frow{display:grid;grid-template-columns:26px repeat(var(--w),minmax(46px,1fr));gap:4px;align-items:stretch}
.fn{font-size:11px;font-weight:700;color:var(--muted);display:grid;place-items:center end;padding-right:4px}
.fcell{border:1.5px solid transparent;border-radius:8px;min-height:44px;padding:3px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font:inherit;line-height:1.1;cursor:pointer}
.fcell b{font-size:13px;font-weight:800}
.fcell small{font-size:10.5px;font-weight:600}
.fcell.free{background:var(--good-soft);color:#1E5E3A;border-color:#BFE3CC}
.fcell.booked{background:var(--warn-soft);color:var(--warn);border-color:#F2D9A8}
.fcell.sold{background:repeating-linear-gradient(135deg,#EFEDEA 0 5px,#E6E3DF 5px 10px);color:#A3A19D;cursor:default}
.fcell.dim{opacity:.22}
.fcell{position:relative}
.fcell .hotmark{position:absolute;top:-6px;right:-5px;font-size:12px;font-style:normal;line-height:1}
.fcell.hot.free{border-color:var(--orange)}
.commbox{display:grid;gap:4px;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.commbox .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.commbox b{font-size:18px;color:var(--graphite)}
.commbox.hot{border-color:var(--orange);background:var(--warn-soft)}
.fcard .comm{color:var(--good);font-weight:700}
.fcard.hot{border-color:var(--orange)}
.mortbox{display:grid;gap:10px;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.mortbox .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.mortbox h3{margin:0;font-size:16px}
.mortrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.mortrow .pay{text-align:right;white-space:nowrap;font-size:16px;color:var(--graphite)}
.mortrow .pay small{display:block;font-size:11px;font-weight:600;color:var(--muted)}
.mortrow.best .pay{color:var(--good)}
.buildlink{display:flex;gap:10px;align-items:center;text-align:left;width:100%;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px;font:inherit;font-size:14px;color:var(--graphite);cursor:pointer}
.buildlink > span:nth-child(2){flex:1}
.buildrep{display:grid;gap:8px}
.buildrep .row{display:flex;gap:8px;align-items:baseline}
.pbar{height:7px;border-radius:99px;background:var(--line);overflow:hidden}.pbar i{display:block;height:100%;background:var(--orange)}
.bphotos{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:-4px;padding-inline:4px}
.bph{flex:none;border:0;padding:0;background:none;border-radius:12px;overflow:hidden;width:min(78%,320px);aspect-ratio:4/3;cursor:zoom-in}
.bph img{width:100%;height:100%;object-fit:cover;display:block}
.storyed{gap:12px}
.storyed .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sprev{display:grid;justify-items:center;gap:6px}
.sprev canvas{max-height:52vh;max-width:100%;width:auto;height:auto;border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.18);touch-action:none;cursor:grab;background:#ddd}
.sphotos{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.sphotos button,.sphotos .addph{flex:none;width:64px;height:64px;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--line);cursor:pointer}
.sphotos button[aria-pressed="true"]{border-color:var(--orange)}
.sphotos img{width:100%;height:100%;object-fit:cover;display:block}
.sphotos .addph{display:grid;place-items:center;font-size:11px;font-weight:700;text-align:center;color:var(--graphite);border:1.5px dashed var(--line);background:var(--surface)}
.stext{display:grid;gap:10px}.stext summary{font-weight:700;cursor:pointer}.stext[open]{display:grid;gap:10px}
.priceup{display:flex;gap:10px;align-items:center;text-align:left;width:100%;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 14px;font:inherit;font-size:14px;color:var(--graphite);cursor:pointer}
.priceup b{color:var(--orange)}
.hotbanner{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:1.5px solid var(--orange);background:var(--warn-soft);border-radius:16px;padding:14px 16px;font:inherit;color:var(--graphite);cursor:pointer}
.hotbanner .ic{font-size:26px;line-height:1}
.hotbanner > span:nth-child(2){flex:1;display:grid;gap:2px}
.hotbanner b{font-size:16px}
.fcell.in{outline:3px solid var(--orange);outline-offset:1px}
.fcell:not(.sold):hover{border-color:var(--orange)}
.flegend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;font-weight:600;color:var(--ink)}
.flegend span{display:inline-flex;align-items:center;gap:6px}
.flegend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.flegend i.free{background:var(--good-soft);border:1.5px solid #BFE3CC}
.flegend i.booked{background:var(--warn-soft);border:1.5px solid #F2D9A8}
.flegend i.sold{background:#E6E3DF}
.flegend i.in{border:3px solid var(--orange)}
.flist{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.fcard{display:flex;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px;font:inherit;color:inherit}
.fcard.in{border:2px solid var(--orange)}
.fcard .plan{width:96px;height:76px;flex:none;border-radius:10px;background:var(--bg);overflow:hidden;display:grid;place-items:center}
.fcard .plan img{width:100%;height:100%;object-fit:contain}
.fcard .info{display:grid;gap:2px;min-width:0;flex:1}
.fcard .price{font-size:16px;color:var(--graphite)}
.planbig{border:1px solid var(--line);background:#fff;border-radius:14px;padding:6px;cursor:zoom-in}
.planbig img{width:100%;display:block}
.pricebox{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pricebox b{display:block;font-size:24px;color:var(--graphite);font-weight:800}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:0}
.facts div{background:var(--bg);border-radius:10px;padding:8px 10px}
.facts dt{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.facts dd{margin:0;font-weight:700;color:var(--graphite)}
.hist{margin:0;padding:10px 12px 10px 28px;background:var(--orange-soft);border-radius:10px;font-size:13px;font-weight:600}
textarea{font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;resize:vertical}
.cartbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(74px + env(safe-area-inset-bottom,0px));z-index:7;display:flex;align-items:center;gap:10px;background:var(--graphite);color:#fff;border-radius:16px;padding:8px 8px 8px 16px;box-shadow:0 8px 24px rgba(0,0,0,.25);width:min(560px,calc(100% - 24px))}
.cartbar span{flex:1;font-size:14px}
.cartbar .btn{min-height:42px;padding:8px 14px;font-size:14px}
.cartbar .x{border:0;background:none;color:#fff;font-size:22px;padding:0 6px;opacity:.7}
body.nav .view{padding-bottom:70px}
@media(min-width:760px){.kpis:has(> :nth-child(5)){grid-template-columns:repeat(5,1fr)}}
/* клетка, которую только что поменял застройщик */
@keyframes flashcell{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 5px var(--orange)}}
.fcell.flash,.fcard.flash{animation:flashcell .8s ease 4;position:relative;z-index:1}
.sels{display:grid;gap:10px}
.sels h3{margin:0}
.sel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.sel > div{display:grid;flex:1;min-width:160px}
.sel.focus{background:var(--orange-soft);border-radius:12px;padding:10px;border-top:0}
/* лента: дата мероприятия на обложке, текст новости */
.promo .cover{position:relative}
.evdate{position:absolute;right:12px;top:12px;background:#fff;color:var(--graphite);border-radius:12px;padding:4px 10px;display:grid;justify-items:center;line-height:1.1;font-size:11px;font-weight:700;text-transform:uppercase;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.evdate b{font-size:20px}
.newsbody{display:grid;gap:10px;font-size:15px;line-height:1.55}
/* лента: афиши, карусель картинок, файлы */
.promo .poster{position:relative;background:var(--bg);display:grid;place-items:center;overflow:hidden}
.promo .poster img{width:100%;height:auto;max-height:520px;object-fit:contain;display:block}
.promo .poster .ptag{position:absolute;left:10px;top:10px;background:rgba(20,20,22,.72);color:#fff;font-size:11px;font-weight:700;border-radius:8px;padding:3px 8px}
.promo .vposter video{width:100%;max-height:420px;object-fit:cover;display:block;background:#000;pointer-events:none}
.promo .vposter .vplay{position:absolute;inset:0;margin:auto;width:56px;height:56px;border-radius:50%;background:rgba(20,20,22,.72);color:#fff;display:grid;place-items:center;font-size:22px;padding-left:4px}
.vwrap{background:#000;border-radius:14px;overflow:hidden;display:grid;place-items:center}
.vwrap video{width:100%;max-height:60vh;display:block;background:#000}
.vwrap.f9x16 video{width:auto;max-width:100%;aspect-ratio:9/16}
.promo .poster .pcount{position:absolute;right:10px;bottom:10px;background:rgba(20,20,22,.72);color:#fff;font-size:11px;font-weight:700;border-radius:8px;padding:3px 8px}
.promo .hasfile{position:absolute;right:12px;top:12px;z-index:2;background:#fff;color:var(--graphite);font-size:11px;font-weight:800;border-radius:8px;padding:3px 8px;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.promo .poster .evdate{top:10px;right:10px;bottom:auto;left:auto}
.pgal{display:grid;gap:8px}
.gtrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;scrollbar-width:none;border-radius:14px}
.gtrack::-webkit-scrollbar{display:none}
.pgimg{flex:0 0 100%;scroll-snap-align:center;border:0;padding:0;background:var(--bg);border-radius:14px;overflow:hidden;cursor:zoom-in;display:grid;place-items:center}
.pgimg img{width:100%;max-height:70vh;object-fit:contain;display:block}
.gdots{display:flex;justify-content:center;gap:6px}
.gdots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.gdots i.on{background:var(--orange)}
.files{display:grid;gap:8px}
.file{display:flex;gap:12px;align-items:center;border:1.5px solid var(--line);border-radius:14px;padding:10px 12px;text-decoration:none;color:var(--ink)}
.file b{display:block;color:var(--graphite)}
.ficon{flex:none;width:42px;height:48px;border-radius:8px;background:var(--bad-soft);color:var(--bad);font-size:11px;font-weight:800;display:grid;place-items:center}

/* ---- рейтинг агентов: места, медали, своё место ---- */
.medal,.place{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:13px;font-weight:800;flex:none}
.medal{color:var(--on-medal)}
.medal.m1{background:var(--gold)}.medal.m2{background:var(--silver)}.medal.m3{background:var(--bronze)}
.place{color:var(--muted);border:1.5px solid var(--line)}
.rmine{display:flex;gap:16px;align-items:center}
.rmine .big{font-size:44px;font-weight:800;line-height:1;color:var(--graphite);font-variant-numeric:tabular-nums}
.rmine .big small{font-size:16px;font-weight:700;color:var(--muted)}
.rlist{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.rlist li{display:flex;gap:12px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line)}
.rlist li:last-child{border-bottom:0}
.rlist li.me{background:var(--orange-soft);border-radius:12px;padding:9px 10px;border-bottom-color:transparent}
.rlist .rn{flex:1;min-width:0}
.rlist .rn b{display:block;color:var(--graphite);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rlist .rp{font-weight:800;color:var(--graphite);font-variant-numeric:tabular-nums}
.rhow{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rhow li{display:flex;gap:12px;align-items:baseline;justify-content:space-between}
.rhow li b{color:var(--graphite);white-space:nowrap}
.rprize{border-radius:var(--r);padding:14px 16px;background:var(--graphite);color:var(--surface);display:grid;gap:4px}
.rprize .eyebrow{color:inherit;opacity:.7}
.rcard{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r);padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink)}
.rcard .rn{flex:1;min-width:0}.rcard .rn b{display:block;color:var(--graphite)}

/* ---- база ответов по ЖК ---- */
.medal.kbi{background:var(--orange-soft);color:var(--graphite)}
.kbitem{display:grid;gap:10px;padding:14px 16px}
.kbq{all:unset;display:grid;gap:2px;cursor:pointer}
.kbq b{color:var(--graphite);font-size:16px;line-height:1.3}
.kbq:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:6px}
.kba{white-space:pre-line;font-size:15px}
.kbc{display:grid;gap:4px;border-left:3px solid var(--orange);background:var(--bg);border-radius:0 10px 10px 0;padding:10px 12px;font-size:14px;white-space:pre-line}
.kbimg{border:0;padding:0;background:none;border-radius:12px;overflow:hidden;cursor:zoom-in}
.kbimg img{display:block;width:100%;max-height:260px;object-fit:cover}

/* ---- как настоящее приложение (только приложение риелтора: html.native ставит app.js) ---- */
/* без приближения двойным касанием, без серой вспышки при нажатии, без «резинки» и обновления страницы жестом вниз */
html.native{touch-action:manipulation;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.native body{overscroll-behavior-y:none}
/* кнопки, меню и картинки не выделяются и не открывают меню «Сохранить картинку» долгим нажатием — тексты выделяются как обычно */
html.native :is(button,.btn,.tabbar,.chips,.course,.rcard,.resume,.top,.seg,.back,img){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
html.native .zoom img{touch-action:none;transition:transform .12s ease-out;will-change:transform;max-height:82vh}
/* предложение установить приложение */
.install{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(440px,calc(100% - 20px));z-index:35;display:flex;gap:12px;align-items:flex-start;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 12px 32px rgba(0,0,0,.18)}
body.nav .install{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.install>img{width:48px;height:48px;border-radius:12px;flex:none;border:1px solid var(--line)}
.install>div{display:grid;gap:6px;min-width:0}
.install .small{color:var(--muted);line-height:1.4}
.install .rowbtns{display:flex;gap:8px;margin-top:4px}
.install .btn{min-height:38px;padding:8px 14px;font-size:14px}
/* пока открыта клавиатура — нижнее меню, корзина подборки и предложение установить спрятаны (класс typing ставит app.js) */
body.typing .tabbar,body.typing .cartbar,body.typing .install{display:none}
/* фото профиля в кружке справа вверху */
.mebtn{overflow:hidden;padding:0}.mebtn img{width:100%;height:100%;object-fit:cover;display:block}

/* ---- карточка ЖК (src/jk.js, renderJk) ---- */
.proj .cover.photo{min-height:132px}
.jkv{gap:14px}
.jkgal{margin-top:2px}
.jkgal .gimg{flex:0 0 88%;max-width:560px;padding:0;border:0;background:none;border-radius:16px;overflow:hidden}
.jkgal .gimg img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.jkcover{height:120px;border-radius:var(--r)}
.jknums{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.jknums>div{display:grid;gap:2px}.jknums b{font-size:20px;color:var(--graphite)}
.jktiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.jktile{display:grid;gap:2px;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer}
.jktile .ic{font-size:22px;line-height:1.2}.jktile b{font-size:15px}
.jktile:active{border-color:var(--orange)}
.jkpromo{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;text-align:left;width:100%;background:var(--bg);border:0;border-radius:12px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.jkpromo b{flex:1 1 60%;font-size:14px}
.jkabout .clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.jkabout p{margin:0;line-height:1.5}
.linkbtn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent-text,var(--orange-deep));cursor:pointer;justify-self:start}
.jkkv{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.jkkv>div{background:var(--bg);border-radius:12px;padding:9px 11px;display:grid;gap:2px;align-content:start}.jkkv b{font-size:14px;color:var(--graphite)}
.jkitems{display:grid;gap:10px}
.jkitems article{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start;background:var(--bg);border-radius:14px;overflow:hidden}
.jkitems article:not(:has(.gimg)){grid-template-columns:1fr}
.jkitems .gimg{padding:0;border:0;background:none}.jkitems .gimg img{width:96px;height:96px;object-fit:cover;display:block}
.jkitems article>div{padding:10px 12px 10px 0;display:grid;gap:3px}.jkitems article:not(:has(.gimg))>div{padding:10px 12px}
.jkitems p{margin:0;color:var(--ink)}
.jkph{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.jkph .gimg{padding:0;border:0;background:none;border-radius:10px;overflow:hidden}.jkph img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.jkprog{display:grid;gap:2px;border-top:1px solid var(--line);padding-top:8px}.jkprog:first-of-type{border:0;padding-top:0}
