@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--bg:#0b0e15;--bg2:#101521;--box:#141a27;--card:#141a27;--line:#232d3f;--txt:#edf1f7;--txt2:#93a0b4;--accent:#ff7500;--accent2:#ff9a40;--ok:#3fd06a;--bad:#ff5f57;--grad:linear-gradient(118deg,#ffa14e,#ff7500 55%,#ff5f00);--btnTxt:#1a1206;--shadow:0 12px 44px rgba(0,0,0,.42);--glow:0 6px 22px color-mix(in srgb,var(--accent) 34%,transparent)}
[data-theme="light"]{--bg:#faf7f2;--bg2:#f3eee6;--box:#141a27;--card:#ffffff;--line:#e8e1d4;--txt:#181d27;--txt2:#5f6d7d;--accent:#e96d00;--accent2:#ff8c26;--grad:linear-gradient(118deg,#ff9c3a,#f26e00 55%,#e35f00);--shadow:0 14px 40px rgba(125,85,25,.10),0 2px 10px rgba(30,40,55,.05);--glow:0 6px 20px color-mix(in srgb,var(--accent) 26%,transparent)}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font:16px/1.65 'Manrope',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* Трекинг был -.02em: на жирном начертании соседние слова зрительно слипались, особенно на телефоне.
   Оставлен лёгкий отрицательный + добавлен просвет между словами. */
h1,h2,h3{font-weight:800;letter-spacing:-.005em;word-spacing:.07em}
a{color:inherit;text-decoration:none}
img{max-width:100%}
button,input,textarea{font-family:inherit}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.mono{font-family:ui-monospace,Consolas,monospace}
.mt{margin-top:28px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.topBar{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,var(--bg2)),var(--bg2) 55%,color-mix(in srgb,var(--accent) 7%,var(--bg2)));border-bottom:1px solid var(--line);font-size:13.5px}
.topBarIn{display:flex;gap:0;justify-content:center;align-items:center;min-height:40px;padding-top:5px;padding-bottom:5px;flex-wrap:wrap}
.topBarItem{display:inline-flex;align-items:center;gap:8px;color:var(--txt2);text-decoration:none;line-height:1.35}
.topBarItem b{color:var(--txt);font-weight:700}
.topBarItem:hover b{color:var(--accent)}
.topBarItem svg{color:var(--accent);flex:none}
.topBarApp{border-left:1px solid var(--line);margin-left:22px;padding-left:22px}
@media (max-width:820px){.topBarApp{display:none}}

.hdr{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hdrIn{display:flex;align-items:center;gap:22px;height:64px}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brandLogo{display:block;height:30px;width:auto}
.brandLogoLight{display:none}
[data-theme="light"] .brandLogoDark{display:none}
[data-theme="light"] .brandLogoLight{display:block}
.ftrBrand .brandLogo{height:24px}
.nav{display:flex;gap:4px;flex:1;min-width:0;justify-content:center}
.nav a{padding:8px 13px;border-radius:10px;color:var(--txt2);font-size:14.5px;font-weight:600;white-space:nowrap;transition:color .15s,background .15s}
.nav a:hover{color:var(--txt);background:color-mix(in srgb,var(--txt) 6%,transparent)}
.nav a.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.hdrCtl{display:flex;align-items:center;gap:6px;margin-left:auto}
.themeBtn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:none;color:var(--txt2);cursor:pointer;transition:color .15s,border-color .15s}
.themeBtn:hover{color:var(--accent);border-color:var(--accent)}
.langSel{position:relative}
.langBtn{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:none;color:var(--txt2);cursor:pointer;font-size:13px;font-weight:700;transition:color .15s,border-color .15s}
.langBtn:hover{color:var(--accent);border-color:var(--accent)}
.langMenu{display:none;position:absolute;right:0;top:42px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:72px;overflow:hidden}
.langSel.open .langMenu{display:block}
.langMenu a{display:block;padding:9px 15px;font-size:13px;font-weight:600;color:var(--txt2)}
.langMenu a:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--txt)}
.burger{display:none;flex-direction:column;gap:4px;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:none;cursor:pointer;align-items:center;justify-content:center}
.burger span{width:16px;height:2px;background:var(--txt2);border-radius:1px}

.hero{position:relative;padding:88px 0 76px;overflow:hidden;background:radial-gradient(820px 400px at 78% -10%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 70%),radial-gradient(700px 500px at 8% 110%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%),var(--bg)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--txt) 6%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--txt) 6%,transparent) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(75% 72% at 60% 0%,#000 20%,transparent 78%);mask-image:radial-gradient(75% 72% at 60% 0%,#000 20%,transparent 78%);pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero .wrap{text-align:center}
.heroTitle{font-size:clamp(31px,5.1vw,56px);line-height:1.14;font-weight:800;letter-spacing:-.008em;word-spacing:.08em;max-width:900px;margin:0 auto}
.gradText{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.heroSub{margin:20px auto 30px;max-width:640px;color:var(--txt2);font-size:18px;line-height:1.6}
.heroBox{max-width:640px;margin:0 auto;text-align:left;background:color-mix(in srgb,var(--card) 84%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}
.heroBox:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:var(--shadow),0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}
.heroBox textarea{width:100%;background:none;border:0;outline:0;resize:none;color:var(--txt);font:inherit;font-size:15.5px;min-height:64px}
.heroBox textarea::placeholder{color:color-mix(in srgb,var(--txt2) 80%,transparent)}
.heroBtns{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;justify-content:center}
.heroWave{position:absolute;left:50%;transform:translateX(-50%);top:34px;width:92%;max-width:1100px;height:auto;opacity:.55;pointer-events:none;z-index:0}
.heroWave .wBase{stroke:color-mix(in srgb,var(--accent) 26%,transparent);fill:none}
.heroWave .wRun{stroke:var(--accent);fill:none;stroke-linecap:round;stroke-dasharray:170 1630;stroke-dashoffset:0;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 75%,transparent));animation:waveRun 6.5s linear infinite}
@keyframes waveRun{to{stroke-dashoffset:-1800}}
@media (max-width:960px){.heroWave{display:none}}

.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;border:1px solid transparent;background:transparent;color:var(--txt);font-family:inherit;transition:transform .16s,filter .16s,background .16s,border-color .16s,box-shadow .16s}
.btn:active{transform:translateY(1px)}
.btnAccent{background:var(--grad);color:var(--btnTxt);border:0;box-shadow:var(--glow)}
.btnAccent:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btnGhost{border-color:var(--line);color:var(--txt)}
.btnGhost:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}
.btnBig{width:100%;justify-content:center;padding:15px;font-size:16px}
.btnSm{padding:7px 14px;font-size:13.5px}

.sec{padding:64px 0}
.secAlt{background:var(--bg2)}
.sec h2{font-size:clamp(23px,3.1vw,32px);margin-bottom:30px}
.sec>.wrap>h2{text-align:center}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cards2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;transition:transform .2s,border-color .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));box-shadow:var(--shadow)}
.card h3{font-size:17.5px;margin-bottom:8px}
.card p{color:var(--txt2);font-size:14.5px}
.cardNum{width:34px;height:34px;border-radius:11px;background:var(--grad);color:var(--btnTxt);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-bottom:14px;box-shadow:var(--glow)}
.cardIco{width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.cardIco svg{width:22px;height:22px}

.appBlock{display:flex;align-items:center;gap:32px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 12%,var(--card)),var(--card) 60%);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:20px;padding:32px;box-shadow:var(--shadow)}
.appBlockTxt{flex:1}
.appBlockTxt h2{margin-bottom:10px;font-size:22px}
.appBlockTxt p{color:var(--txt2);margin-bottom:18px;font-size:15px}
.appBlockArt{flex:none;width:130px}
.appBlockArt img{width:100%;height:auto;border-radius:18px;box-shadow:var(--glow)}
.btnRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.soonBadge{display:inline-block;padding:5px 13px;border-radius:20px;font-size:12.5px;font-weight:700;letter-spacing:.3px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border:1px dashed color-mix(in srgb,var(--accent) 65%,transparent);white-space:nowrap}
.btnDisabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.dlBox{display:flex;gap:24px;align-items:flex-start;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 12%,var(--card)),var(--card) 60%);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:20px;padding:30px;box-shadow:var(--shadow)}
.dlLogo{flex:none;width:96px;height:96px;border-radius:20px;box-shadow:var(--glow)}
.dlTxt h2{margin-bottom:6px;font-size:22px}
.dlMeta{color:var(--txt2);font-size:13.5px;margin-bottom:10px}
.dlTxt p{color:var(--txt2);font-size:15px;margin-bottom:14px}
.dlTxt .btnRow{margin-bottom:12px}
.dlSize{font-size:13px;color:var(--txt2);white-space:nowrap;font-variant-numeric:tabular-nums}
.dlNotice{font-size:12.5px !important;color:var(--txt2);opacity:.75;margin-bottom:10px !important;line-height:1.5}
.dlVerify{font-size:12.5px;color:var(--txt2)}
.dlVerify summary{cursor:pointer;user-select:none;opacity:.8}
.dlHash{display:block;margin-top:8px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--txt2) 8%,transparent);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;word-break:break-all;color:var(--txt2)}
.dlBmw{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin-bottom:18px}
.dlBmw h3{font-size:17px;margin-bottom:8px}
.dlBmw>p{color:var(--txt2);font-size:14px;margin-bottom:14px}
.dlBmw .btnRow{margin-bottom:12px}
.dlHowto{padding:4px 4px 0}
.dlHowto h3{font-size:16px;margin-bottom:10px}
.dlHowto ol{margin:0;padding-left:20px;color:var(--txt2);font-size:14px;line-height:1.7}
.dlHowto li{margin-bottom:4px}
.cfOk{margin-top:14px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);font-size:14.5px}
.gateCard{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:38px;text-align:center;box-shadow:var(--shadow);margin-bottom:26px}
.gateCard h2{margin:14px 0 10px;font-size:22px}
.gateCard>p{color:var(--txt2);max-width:460px;margin:0 auto 18px;font-size:15px}
.gateLogo{margin:0 auto}
.gateCard .g_id_signin{display:flex;justify-content:center}
.proList{list-style:none;padding:0;max-width:400px;margin:0 auto 20px;text-align:left}
.proList li{padding:9px 0 9px 30px;position:relative;font-size:15px;border-bottom:1px solid var(--line)}
.proList li:last-child{border-bottom:0}
.proList li::before{content:"✓";position:absolute;left:4px;color:var(--accent);font-weight:800}
.gateCard .btnBig{max-width:340px;margin:0 auto}
.gateCard .fHint{margin-top:12px}
.quotaLine{margin-top:12px;font-size:13px;color:var(--txt2);text-align:center}
.authLine{white-space:nowrap}
.logoutLink{color:var(--accent);margin-left:8px;font-size:12.5px}
.logoutLink:hover{text-decoration:underline}
.gateCard .authLine{display:block;margin-top:16px;font-size:13px;color:var(--txt2)}
.hp{position:absolute;left:-5000px;opacity:0;height:0;width:0;pointer-events:none}

.faq{max-width:760px;margin:0 auto}
.faqItem{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:10px;overflow:hidden;transition:border-color .2s}
.faqItem:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.faqItem summary{padding:17px 21px;cursor:pointer;font-weight:700;font-size:15.5px;list-style:none;position:relative;padding-right:48px}
.faqItem summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font-size:17px;font-weight:600}
.faqItem[open] summary::after{content:"–"}
.faqItem summary::-webkit-details-marker{display:none}
.faqItem p{padding:0 21px 17px;color:var(--txt2);font-size:14.5px}

.pgHead{padding:48px 0 8px;text-align:center}
.pgHead h1{font-size:clamp(25px,3.7vw,38px)}
.pgSub{margin:13px auto 0;color:var(--txt2);max-width:720px;font-size:16px}
.crumbs{margin-bottom:14px;font-size:13.5px;color:var(--txt2)}
.crumbs a{color:var(--accent)}

.diagForm{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow)}
.tabs{display:flex;gap:6px;margin-bottom:20px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:4px}
.tab{flex:1;padding:10px;border:0;border-radius:9px;background:none;color:var(--txt2);font-size:14.5px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.tab.on{background:var(--grad);color:var(--btnTxt);box-shadow:var(--glow)}
.fLabel{display:block;font-size:13.5px;color:var(--txt2);margin:14px 0 6px;font-weight:700}
.fInput{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--txt);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
.fInput:focus{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}
textarea.fInput{resize:vertical}
.fHint{font-size:13px;color:var(--txt2);margin-top:8px}
.iosNote{opacity:.8}
#dgSubmit{margin-top:20px}
.entryRow{margin:12px -8px 0;padding:8px;border:1.5px dashed transparent;border-radius:14px;transition:border-color .15s}
.entryRow.drag{border-color:var(--accent)}
.entryBtns{display:flex;gap:8px;flex-wrap:wrap}
.entryBtns .btn{display:inline-flex;align-items:center;gap:7px}
.entryBtns svg{color:var(--accent);flex:none}
.attachRow{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 4px}
.entryRow .attachRow{margin:0 0 12px}
.attachItem{position:relative}
.attachItem img{display:block;height:74px;border-radius:9px;border:1px solid var(--line)}
.attachItem button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--txt);font:inherit;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(0,0,0,.28)}
.attachItem button:hover{color:var(--bad);border-color:var(--bad)}
.dgBusy{display:flex;align-items:center;gap:12px;margin-top:16px;color:var(--txt2);font-size:14.5px}
.spinner{width:20px;height:20px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.dgError,.connError{margin-top:14px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);font-size:14.5px}

.sevBadge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:700;background:var(--line);white-space:nowrap}
.sevBadge[data-sev="1"],.sevBadge[data-sev="2"]{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.sevBadge[data-sev="3"]{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.sevBadge[data-sev="4"],.sevBadge[data-sev="5"]{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.dgResRow{margin-top:18px}
.dgResRow h3{font-size:13.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--txt2);margin-bottom:8px}
.dgResRow ol,.dgResRow ul{padding-left:22px}
.dgResRow li{margin-bottom:6px;font-size:15px}
.disclaimer{margin-top:22px;font-size:12.5px;color:var(--txt2);opacity:.8}

.wayLadder{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.wayStep{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 15px 13px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s}
.wayStep.on{background:var(--bg2)}
a.wayStep:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));transform:translateY(-2px);box-shadow:var(--shadow)}
.wayStep.best{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card)),var(--card) 70%)}
.wayTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.wayTop svg{width:34px;height:34px;padding:7px;border-radius:10px;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent)}
.wayStep.on .wayTop svg{color:var(--txt2);background:color-mix(in srgb,var(--txt2) 12%,transparent)}
.wayBars{display:flex;gap:3px}
.wayBars i{width:13px;height:5px;border-radius:3px;background:var(--line)}
.wayBars i.f{background:var(--accent)}
.wayStep.on .wayBars i.f{background:var(--txt2)}
.wayBadge{position:absolute;top:-9px;right:12px;padding:2px 9px;border-radius:20px;background:var(--grad);color:var(--btnTxt);font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;box-shadow:var(--glow)}
.wayT{font-size:15px;font-weight:800;line-height:1.25}
.wayD{font-size:13px;color:var(--txt2);line-height:1.45}
.wayF{margin-top:auto;padding-top:5px;font-size:12.5px;font-weight:700;color:var(--accent)}
.wayStep.on .wayF{color:var(--txt2)}
.chatBox{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}
.chatTop{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}
.chatTop .btn{display:inline-flex;align-items:center;gap:6px}
.issueList{padding-left:20px;margin-bottom:10px}
.issueList li{margin-bottom:9px;font-size:15.5px}
.issueList li::marker{color:var(--accent)}
.subH{margin:26px 0 12px;font-size:17px}
.modList li{margin-bottom:7px;font-size:15px}
.noteBox{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:16px 18px;margin:20px 0}
.noteBox h3{font-size:16px;margin-bottom:7px}
.noteBox p{font-size:14.5px;color:var(--txt2)}
.compatBox{margin-top:34px}
.compatBox h2{margin-bottom:14px}
.compatTable td:first-child{font-weight:600}
.compatYes{color:var(--ok)}
.compatNo{color:var(--txt2)}
.histBar{display:flex;justify-content:flex-end;margin-bottom:10px}
.histBar .btn{display:inline-flex;align-items:center;gap:6px}
.chatHist{border:1px solid var(--line);border-radius:14px;background:var(--bg2);padding:6px;margin-bottom:14px;max-height:290px;overflow-y:auto}
.histItem{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;cursor:pointer;transition:background .15s}
.histItem:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
.histItem.on{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.histMain{flex:1;min-width:0}
.histTitle{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.histMeta{font-size:12px;color:var(--txt2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.histDel{flex:none;border:none;background:none;color:var(--txt2);font-size:19px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:7px}
.histDel:hover{color:var(--err,#ff5f5f);background:color-mix(in srgb,#ff5f5f 12%,transparent)}
.histEmpty{padding:14px 12px;font-size:13.5px;color:var(--txt2)}
/* Диалог в манере Gemini: реплика человека — компактный «пузырь» справа, ответ ИИ — обычный текст
   на странице без рамки и заливки. Так ответ читается как документ, а не как переписка в мессенджере,
   и в нём не теряются списки шагов. */
#chatLog{display:flex;flex-direction:column;gap:22px}
.msg{border-radius:18px;padding:13px 17px;font-size:15.5px;line-height:1.72}
.msg p{white-space:pre-wrap;overflow-wrap:break-word}
.msg.user{position:relative;align-self:flex-end;max-width:75%;background:color-mix(in srgb,var(--accent) 15%,var(--bg2));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-bottom-right-radius:6px}
/* Отмена стоит у самой реплики: так видно, ЧТО именно откатывается. На тач-экранах hover нет,
   поэтому там иконка видна всегда, только приглушённой. */
.msgUndo{position:absolute;top:50%;left:-34px;transform:translateY(-50%);width:26px;height:26px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);background:var(--card);color:var(--txt2);border-radius:50%;font-size:13px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s}
.msg.user:hover .msgUndo,.msgUndo:focus-visible{opacity:1}
.msgUndo:hover{color:var(--accent);border-color:var(--accent)}
@media (hover:none){.msgUndo{opacity:.6}}
@media (max-width:560px){.msgUndo{left:auto;right:-4px;top:-12px;transform:none}}
.msg.ai{align-self:stretch;background:none;border:none;padding:0 2px}
.msg.ai + .msg.user{margin-top:6px}
.msgVeh{font-size:12.5px;color:var(--txt2);margin-bottom:4px}
.msgImgs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.msgImgs .msgImg{max-height:100px;max-width:160px}
.msgImg{display:block;max-width:200px;max-height:150px;border-radius:10px}
.msg .sevBadge{font-size:11.5px;padding:2.5px 9px;margin-bottom:7px}
.msgSteps{margin:8px 0 0;padding-left:20px}
.msgSteps li{margin-top:5px;font-size:14.5px}
.msgAsk{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 15px;border-radius:13px;background:color-mix(in srgb,var(--accent) 11%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);font-size:15px;font-weight:600;line-height:1.5;color:var(--txt)}
.msgAsk::before{content:"→";color:var(--accent);font-weight:800;font-size:17px;line-height:1.3;flex:none}
.msgBusy{display:flex;align-items:center;gap:11px;color:var(--txt2);font-size:14px;padding:4px 2px}
/* Рамку и отступы задаём явно: ответ ИИ их больше не даёт (.msg.ai без фона и границы) */
.msgErr{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 17px;background:color-mix(in srgb,var(--bad) 10%,var(--card));border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);color:var(--bad);font-size:14px}
.msgErr.soft{background:color-mix(in srgb,var(--accent) 7%,var(--card));border-color:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--txt2)}
.retryBtn{border:1px solid currentColor;background:transparent;color:inherit;border-radius:9px;padding:5px 12px;font:inherit;font-size:13.5px;cursor:pointer}
.chatQuick{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.qchip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:20px;border:1px solid var(--line);background:var(--card);color:var(--txt);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s}
.qchip:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--txt)}
.qchip svg{color:var(--accent);flex:none}
.chatComposer{display:flex;gap:8px;margin-top:12px;align-items:flex-end}
.chatComposer .fInput{resize:none;max-height:140px;min-height:46px;overflow-y:hidden}
.chatSend{width:46px;height:46px;border-radius:13px;border:0;background:var(--grad);color:var(--btnTxt);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--glow);transition:filter .15s,transform .15s}
.chatSend:hover{filter:brightness(1.06);transform:translateY(-1px)}

.appPromo{margin-top:28px;border-radius:20px;padding:28px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,var(--card)),var(--card) 62%);box-shadow:var(--shadow)}
.appPromoHead{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.appPromoLogo{border-radius:15px;flex:none;box-shadow:var(--glow)}
.appPromoTitleBox h2{font-size:21px;margin-bottom:5px}
.appPromoTitleBox p{color:var(--txt2);font-size:14.5px;line-height:1.5}
.appPromoGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-bottom:20px}
.appPromoItem{display:flex;gap:11px;align-items:center;font-size:14.5px;font-weight:600}
.appPromoItem svg{flex:none;width:38px;height:38px;padding:8px;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);border-radius:12px}
.appPromoCta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
@media (max-width:560px){.appPromoGrid{grid-template-columns:1fr}.appPromoHead{align-items:flex-start}.msg.user{max-width:94%}}

.connectBox{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow)}
.connectBtns{display:flex;gap:10px;flex-wrap:wrap}
.connStatus{display:flex;align-items:center;gap:12px;margin-top:16px;color:var(--txt2)}
.connResult{margin-top:22px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow)}
.connLive{display:flex;gap:14px;margin:16px 0}
.liveCell{flex:1;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:15px;text-align:center}
.liveVal{display:block;font-size:23px;font-weight:800;color:var(--accent)}
.liveLbl{font-size:12.5px;color:var(--txt2)}
.dtcList{list-style:none;padding:0}
.dtcList li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}
.dtcList .codeId{color:var(--accent);font-weight:700}

/* OBD-панель результатов (/connect): сводка + секции, наполняются по мере сканирования */
#obdPanel{margin-top:22px;display:flex;flex-direction:column;gap:16px}
.obdStatus{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 24px;box-shadow:var(--shadow)}
.obdStatus.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.obdStatus.warn{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.obdStatus.bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.obdStIco{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:none}
.obdStatus.ok .obdStIco{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.obdStatus.warn .obdStIco{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.obdStatus.bad .obdStIco{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.obdStIco svg{width:26px;height:26px}
.obdStTxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.obdStTxt b{font-size:17px}
.obdStTxt span{font-size:13px;color:var(--txt2)}
.obdSec{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 24px;box-shadow:var(--shadow)}
.obdSec>h3{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--txt2);margin-bottom:14px}
.obdSec>h3 .btn{text-transform:none;letter-spacing:0}
.obdGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.obdCell{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:13px 15px;text-align:center}
.obdCell b{display:block;font-size:22px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
.obdCell b i{font-style:normal;font-size:12.5px;font-weight:600;color:var(--txt2)}
.obdCell span{font-size:12px;color:var(--txt2)}
.obdTrim.ok b{color:var(--ok)}
.obdTrim.warn b{color:var(--accent)}
.obdTrim.bad b{color:var(--bad)}
.obdPend{margin-left:10px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:20px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);white-space:nowrap}
.obdCodeName{color:var(--txt2);font-size:14px}
.obdBtnRow{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.obdEraseBtn{border-color:color-mix(in srgb,var(--bad) 45%,var(--line));color:var(--bad)}
.obdEraseBtn:hover{border-color:var(--bad);color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.obdConfirm{margin-top:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--bad) 40%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--bad) 7%,transparent);font-size:14px}
.obdEraseNote{margin-top:10px;font-size:14px;color:var(--txt2)}
.obdEraseNote.ok{color:var(--ok)}
.obdEraseNote.bad{color:var(--bad)}
.obdFfTable td:first-child{color:var(--txt2)}
.obdReadyList{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:7px 18px}
.obdReadyList li{display:flex;gap:9px;align-items:baseline;font-size:14.5px}
.obdReadyList li b{color:var(--txt2)}
.obdReadyList li.ok b{color:var(--ok)}
#obdCatWrap{margin-top:16px}
.obdCatRun{margin-top:10px;font-size:14px;color:var(--txt2)}
.obdCatRes{margin-top:8px;font-size:14.5px;font-weight:600}
.obdCatRes.ok{color:var(--ok)}
.obdCatRes.bad{color:var(--bad)}
.obdNoDtc{color:var(--ok);font-size:15px}
@media (max-width:560px){.obdReadyList{grid-template-columns:1fr}.obdStatus{flex-wrap:wrap}}

.searchInput{max-width:340px;margin-bottom:26px}
.codeGrpTitle{font-size:19px;margin:28px 0 14px}
.codeGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.codeCell{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;transition:border-color .15s,transform .15s}
.codeCell:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));transform:translateY(-2px)}
.codeId{font-family:ui-monospace,Consolas,monospace;font-weight:700;color:var(--accent);font-size:15px}
.codeTitle{font-size:13px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.codeBig{font-family:ui-monospace,Consolas,monospace;color:var(--accent)}
.sevLine{margin-top:12px}
.pgNav{display:flex;justify-content:space-between;margin-top:30px}

.chassisGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.chassisCard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:4px;transition:border-color .2s,transform .2s,box-shadow .2s}
.chassisCard:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-3px);box-shadow:var(--shadow)}
.chassisCode{font-size:25px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.chassisName{font-weight:700}
.chassisYears{font-size:13px;color:var(--txt2)}
.chassisBlocks{font-size:13px;color:var(--txt2);margin:8px 0 14px}
.chassisCard .btn{align-self:flex-start}
.blocksTable{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:14.5px}
.blocksTable th{text-align:left;padding:11px 15px;background:var(--bg2);color:var(--txt2);font-size:12.5px;text-transform:uppercase;letter-spacing:.5px}
.blocksTable td{padding:9px 15px;border-top:1px solid var(--line)}
.codingMark{color:var(--ok);font-weight:800;text-align:center}
.reqList{padding-left:22px}
.reqList li{margin-bottom:10px;font-size:15.5px}
.adpSub{color:var(--txt2);max-width:760px;margin:0 0 18px}
.tblWrap{overflow-x:auto;margin-bottom:6px}
.adpTable{min-width:820px;font-size:13.5px;line-height:1.45}
.adpTable td{vertical-align:top}
.adpName{font-weight:700;min-width:170px}
.adpNote{color:var(--txt2)}
.adpH3{margin:30px 0 12px;font-size:20px}
.secH2{margin-bottom:16px}
.modelChips{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.vinHint{font-size:13px;color:var(--ok);margin:6px 0 0;font-weight:600}

.ftr{border-top:1px solid var(--line);padding:24px 0;margin-top:40px;background:var(--bg2)}
.ftrTop{display:flex;gap:14px 40px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.ftrBrand{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ftrBrand p{color:var(--txt2);font-size:12.5px;max-width:300px}
.ftrNav{display:flex;flex-wrap:wrap;gap:4px 15px;justify-content:flex-end}
.ftrNav a{color:var(--txt2);font-size:13px;transition:color .15s}
.ftrNav a:hover{color:var(--accent)}
.ftrNote{font-size:11.5px;color:var(--txt2);opacity:.7;max-width:860px}
.ftrCopy{font-size:12px;color:var(--txt2);margin-top:5px}

.artSec{padding-top:34px}
.prose{font-size:16px;line-height:1.68}
.sec .prose h2{font-size:clamp(21px,2.5vw,27px);margin:38px 0 14px;text-align:left}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:18px;margin:26px 0 10px}
.prose p{margin:0 0 15px}
.prose ul,.prose ol{margin:0 0 16px;padding-left:24px}
.prose li{margin-bottom:6px}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--accent)}
.prose code{font-family:ui-monospace,Consolas,monospace;font-size:.9em;background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.prose pre{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow-x:auto;font-size:13.5px;line-height:1.5;margin:0 0 16px}
.prose pre code{background:none;border:0;padding:0}
.prose .tblWrap{margin:0 0 18px}
.prose .blocksTable td{vertical-align:top}
.prose .noteBox p:last-child{margin:0}
.prose img{max-width:100%;border-radius:12px}
.sec>.wrap>h2.artH{margin:44px 0 16px;font-size:22px;text-align:left}
.artUpd{margin-top:22px}
.hubCard{display:block;color:inherit;text-decoration:none}
.hubMore{display:inline-block;margin-top:12px;color:var(--accent);font-weight:700;font-size:14px}
.pinout{margin:22px 0;padding:18px 18px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.obdSvg{width:100%;max-width:380px;display:block;margin:0 auto}
.obdBody{fill:var(--bg2);stroke:var(--line);stroke-width:2}
.obdPin circle{fill:var(--card);stroke:var(--line);stroke-width:1.5}
.obdPin text{font-size:11px;font-weight:700;fill:var(--txt2)}
.obdPin.on circle{fill:var(--accent);stroke:var(--accent2)}
.obdPin.on text{fill:var(--btnTxt)}
.pinout figcaption{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.obdLeg{font-size:13px;color:var(--txt2);background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:4px 11px}
.obdLeg b{color:var(--accent);margin-right:6px}

@media (max-width:900px){
.cards3,.cards2{grid-template-columns:1fr 1fr}
.nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg2);border-bottom:1px solid var(--line);flex-direction:column;padding:10px 20px;gap:2px}
.nav.open{display:flex}
.nav a{padding:12px 10px}
.burger{display:flex}
}
@media (max-width:620px){
.cards3,.cards2{grid-template-columns:1fr}
.hero{padding:52px 0 44px}
.appBlock{flex-direction:column;text-align:left}
.appBlockArt{display:none}
.dlBox{flex-direction:column}
.connLive{flex-direction:column}
.hdrIn{gap:10px}
.blocksTable{display:block;overflow-x:auto}
.wayLadder{grid-template-columns:1fr;gap:8px}
.wayStep{padding:12px 14px 11px}
}
