/* speedor.net — общая дизайн-система (палитра/фон/шрифты из myQiming «启明») */
:root{
  --bg:#070b1f; --bg2:#0c1330; --panel:#0f1733; --panel2:#0b1226; --line:#22304f;
  --txt:#f4f6fb; --mut:#9fb3d4; --mut2:#697ca6;
  --gold:#f7d27a; --gold2:#e0982f; --grad-gold:linear-gradient(135deg,#f7d27a,#e0982f);
  --blue:#2aabee; --blue2:#1e88d6; --grad-blue:linear-gradient(135deg,#2aabee,#1e88d6);
  --cyan:#7dd3fc; --ice:#4a9eff; --mint:#6ee7b7; --coral:#ff8a6b; --pink:#ff6ec4;
  --acc:#f7d27a; --fg:#f4f6fb;
  --radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,Arial,sans-serif;
  color:var(--txt);background:#070b1f;min-height:100%;line-height:1.5;
  display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
}
/* небесные свечения «утренней звезды» (золото⤴ + электрик-блю/циан⤴ + коралл⤵ + индиго) */
body::before{
  content:"";position:fixed;inset:-10%;z-index:-2;
  background:
    radial-gradient(ellipse 55vw 45vh at 12% -2%,  rgba(245,196,81,.26) 0%, rgba(245,196,81,0) 48%),
    radial-gradient(ellipse 50vw 50vh at 88% 14%,  rgba(74,158,255,.40) 0%, rgba(74,158,255,0) 50%),
    radial-gradient(ellipse 58vw 48vh at 78% 4%,   rgba(125,211,252,.24) 0%, rgba(125,211,252,0) 46%),
    radial-gradient(ellipse 70vw 55vh at 26% 102%, rgba(255,138,107,.22) 0%, rgba(255,138,107,0) 55%),
    radial-gradient(circle 320px at 90% 82%, rgba(99,102,241,.28) 0%, rgba(99,102,241,0) 60%),
    radial-gradient(circle 280px at 5% 86%,  rgba(245,196,81,.18) 0%, rgba(245,196,81,0) 60%),
    linear-gradient(180deg,#070b1f 0%,#0c1330 50%,#070b1f 100%);
  transform:translate(calc(var(--mx,0) * -7%),calc(var(--my,0) * -4%)) scale(1.12);
  transition:transform .65s cubic-bezier(.22,1,.36,1);will-change:transform;
}
/* 3D «runway» сетка-флор из qiming (нижний + зеркальный верхний план, бегущие перекладины) */
.grid-floor,.grid-floor-top{position:fixed;left:0;right:0;height:55vh;z-index:-1;pointer-events:none;perspective:900px;perspective-origin:50% 0%;overflow:hidden}
.grid-floor{bottom:0}
.grid-floor-top{top:0;perspective-origin:50% 100%;transform:scaleY(-1);opacity:.55}
.grid-floor-inner,.grid-floor-top-inner,.grid-floor-lanes,.grid-floor-top-lanes{position:absolute;left:-100%;bottom:-200%;width:300%;height:320%;transform-origin:50% 0%;transform:rotateX(68deg)}
.grid-floor-lanes,.grid-floor-top-lanes{background:repeating-linear-gradient(90deg,rgba(125,211,252,.22) 0 1px,transparent 1px 80px)}
.grid-floor-inner,.grid-floor-top-inner{background:repeating-linear-gradient(0deg,rgba(125,211,252,.32) 0 1px,transparent 1px 80px);
  -webkit-mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.45) 65%,transparent 95%);
  mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.45) 65%,transparent 95%);
  animation:grid-rush 10s linear infinite}
@keyframes grid-rush{0%{background-position:0 0}100%{background-position:0 80px}}
.grid-horizon{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;height:60px;
  background:radial-gradient(ellipse at center,rgba(125,211,252,.40) 0%,rgba(125,211,252,.08) 30%,transparent 70%);filter:blur(8px);z-index:-1;pointer-events:none}
@media(prefers-reduced-motion:reduce){.grid-floor-inner,.grid-floor-top-inner{animation:none}body::before{transition:none}}
/* тонкая техно-сетка */
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(125,211,252,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(125,211,252,.05) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%);
}
a{color:inherit;text-decoration:none}
.accent{background:linear-gradient(90deg,#ffe09e,#4a9eff);-webkit-background-clip:text;background-clip:text;color:transparent}
.accent-gold{background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}

/* контейнер — широкий, на весь экран */
.wrap{position:relative;z-index:1;width:100%;max-width:none;margin:0 auto;padding:26px 10px 64px}
@media(max-width:680px){.wrap{padding:20px 10px 48px}}

/* шапка */
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;position:relative;z-index:9000}
.logo{font-weight:800;font-size:22px;letter-spacing:-.4px}
.langsel{position:relative}
.langsel summary{list-style:none;cursor:pointer;font-size:13px;color:var(--mut);border:1px solid var(--line);background:var(--panel);padding:8px 13px;border-radius:11px;display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}
.langsel summary:hover{color:var(--txt);border-color:var(--ice)}
.langsel summary::-webkit-details-marker{display:none}
.langmenu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);background:#0c1330;border:1px solid var(--line);border-radius:14px;padding:9px;width:320px;max-height:62vh;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:2px;z-index:9001;box-shadow:0 24px 70px rgba(0,0,0,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.langmenu .lng{font-size:12.5px;color:var(--mut);padding:7px 10px;border-radius:9px;text-align:start}
.langmenu .lng:hover{background:var(--panel2);color:var(--txt)}
.langmenu .lng.active{color:var(--gold)}

/* навигация-табы */
.nav{display:flex;gap:9px;margin-bottom:26px;flex-wrap:wrap}
.nav a{font-size:14px;color:var(--mut);border:1px solid var(--line);background:var(--panel);padding:9px 16px;border-radius:12px;font-weight:600;transition:.16s}
.nav a:hover{color:var(--txt);border-color:var(--ice)}
.nav a.on{color:#0a1330;background:var(--grad-blue);border:0;box-shadow:0 6px 20px rgba(42,171,238,.4)}

/* заголовки */
h1{font-size:clamp(28px,4vw,40px);font-weight:850;letter-spacing:-.8px;line-height:1.08;margin-bottom:6px}
.lead{color:var(--mut);font-size:clamp(15px,1.6vw,17px);margin-bottom:22px}
/* answer-first: прямой ответ под H1 для featured snippets / AI Overviews */
.answer{color:var(--fg);font-size:clamp(15px,1.65vw,17.5px);line-height:1.62;margin:0 0 24px;padding:14px 18px;
  background:rgba(42,171,238,.06);border-left:3px solid var(--acc);border-radius:0 10px 10px 0;max-width:900px}
.answer:lang(ar),.answer:lang(fa),.answer:lang(he),.answer:lang(ur){border-left:none;border-right:3px solid var(--acc);border-radius:10px 0 0 10px}
.sub{color:var(--mut);font-size:16px;margin-bottom:22px;text-align:center}

/* карточки/панели */
.card{background:linear-gradient(180deg,rgba(20,28,56,.7),rgba(11,18,38,.7));border:1px solid var(--line);border-radius:var(--radius);padding:22px;backdrop-filter:blur(6px)}
.ct{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--gold);font-weight:700;margin-bottom:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:760px){.grid2,.grid3{grid-template-columns:1fr}}

/* кнопки (золотой CTA — главный) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;cursor:pointer;
  background:var(--grad-gold);color:#2a1c05;font-weight:800;font-size:16px;padding:15px 34px;border-radius:14px;
  box-shadow:0 8px 26px rgba(245,196,81,.40);transition:transform .18s,box-shadow .18s,filter .18s;font-family:inherit}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(245,196,81,.58);filter:brightness(1.05)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}
.btn-blue{background:var(--grad-blue);color:#fff;box-shadow:0 8px 26px rgba(42,171,238,.42)}
.btn-blue:hover{box-shadow:0 14px 36px rgba(42,171,238,.58)}

/* поля ввода */
.field{display:flex;gap:12px}
.field input,.field select{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--txt);padding:14px 16px;border-radius:13px;font-size:15px;outline:none;font-family:inherit}
.field input:focus{border-color:var(--cyan)}

/* таблицы ключ-значение */
table.kv{width:100%;border-collapse:collapse;font-size:14.5px}
table.kv td{padding:11px 4px;border-bottom:1px solid var(--line);vertical-align:top}
table.kv tr:last-child td{border-bottom:0}
table.kv td:first-child{color:var(--mut);width:42%}
table.kv td:last-child{font-weight:600;text-align:end;word-break:break-all}

/* гейдж спидтеста */
.gauge{margin:8px auto 0;width:min(340px,80vw);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--line) 0deg,var(--line) 360deg);transition:background .4s cubic-bezier(.22,1,.36,1),transform .3s ease}
.gauge::after{content:"";position:absolute;inset:18px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#0f1733,#070b1f)}
.gv{position:relative;z-index:1;text-align:center}
.gv .n{font-size:clamp(52px,9vw,72px);font-weight:850;letter-spacing:-2px;font-feature-settings:"tnum";line-height:1}
.gv .u{font-size:13px;color:var(--mut);text-transform:uppercase;letter-spacing:2px;margin-top:8px}
.gv .ph{font-size:12px;color:var(--cyan);text-transform:uppercase;letter-spacing:2px;margin-top:12px;height:14px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 10px;text-align:center}
.stat .n{font-size:26px;font-weight:800;font-feature-settings:"tnum"}
.stat .l{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.7px;margin-top:5px}
.stat .dl{color:var(--cyan)}.stat .ul{color:var(--mint)}
.server{margin-top:24px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:15px 18px;font-size:14.5px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.server .muted{color:var(--mut)}
.client{margin-top:18px;font-size:13px;color:var(--mut2);text-align:center}

/* центрированный layout спидтеста */
.center{width:100%;margin:0 auto;text-align:center}

/* крипто/пинг строки */
.up{color:var(--mint)}.down{color:var(--pink)}
.good{color:var(--mint)}.mid{color:var(--gold)}.bad{color:var(--pink)}

/* ===== ЭФФЕКТЫ (перенос из myQiming): появление, пульс круга, свечение, лазеры ===== */
@keyframes fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.wrap h1,.wrap .lead,.wrap .sub,.wrap .nav,.wrap .gauge,.wrap .stats,.wrap .card,.wrap .field,.wrap .upd{animation:fade-up .7s ease both}
.wrap h1{animation-delay:.04s}.wrap .lead,.wrap .sub{animation-delay:.1s}.wrap .gauge{animation-delay:.08s}.wrap .stats{animation-delay:.18s}.wrap .grid2 .card:nth-child(2){animation-delay:.26s}.wrap .grid2 .card{animation-delay:.2s}

/* пульсирующий кликабельный круг (как speedtest.net) */
.gauge.ready{cursor:pointer;animation:gauge-breathe 2.4s ease-in-out infinite}
.gauge.ready:hover{transform:scale(1.04)}
@keyframes gauge-breathe{0%,100%{box-shadow:0 0 0 0 rgba(125,211,252,0),0 0 50px rgba(125,211,252,.12)}50%{box-shadow:0 0 0 10px rgba(125,211,252,.06),0 0 90px rgba(125,211,252,.4)}}
/* расходящиеся кольца */
.gauge.ready::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(125,211,252,.55);animation:gring 2.2s ease-out infinite;pointer-events:none}
@keyframes gring{0%{transform:scale(.98);opacity:.8}80%{opacity:0}100%{transform:scale(1.22);opacity:0}}
/* пульсирующий призыв «GO» в центре (idle) */
.gauge.ready .gv .n{animation:go-throb 2.2s ease-in-out infinite}
@keyframes go-throb{0%,100%{transform:scale(1);text-shadow:0 0 0 rgba(247,210,122,0)}50%{transform:scale(1.06);text-shadow:0 0 28px rgba(247,210,122,.55)}}
.gauge.ready .gv .ph{color:var(--gold)!important;font-weight:800;letter-spacing:3px;animation:txt-pulse 2.2s ease-in-out infinite}
@keyframes txt-pulse{0%,100%{opacity:.55}50%{opacity:1}}
/* вращающийся «scanner»-блик по кромке (idle) */
.gauge.ready .gv::after{content:"";position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 86%,rgba(125,211,252,.5) 92%,transparent 100%);-webkit-mask:radial-gradient(circle,transparent 0 47%,#000 48%);mask:radial-gradient(circle,transparent 0 47%,#000 48%);animation:gscan 3.6s linear infinite;pointer-events:none;z-index:-1}
@keyframes gscan{to{transform:rotate(360deg)}}
.gv{position:relative}

/* свечение-пульс кнопок */
.btn:not(.btn-blue){animation:cta-glow-gold 3s ease-in-out 1s infinite}
@keyframes cta-glow-gold{0%,100%{box-shadow:0 8px 26px rgba(245,196,81,.40)}50%{box-shadow:0 8px 30px rgba(245,196,81,.66)}}
.btn-blue{animation:cta-glow-blue 3s ease-in-out 1s infinite}
@keyframes cta-glow-blue{0%,100%{box-shadow:0 8px 26px rgba(42,171,238,.40)}50%{box-shadow:0 8px 30px rgba(42,171,238,.64)}}

/* лазерные коннект-линии + пульс-пины (для карты узлов) */
.laser-map{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.9}
.laser-map .conn{stroke:rgba(125,211,252,.30);stroke-width:.7;fill:none;stroke-dasharray:3 7;animation:mapConnFlow 5.5s linear infinite;animation-delay:var(--cd,0s)}
@keyframes mapConnFlow{to{stroke-dashoffset:-100}}
.laser-map .halo{animation:pin-pulse var(--pdur,3.6s) ease-out infinite;animation-delay:var(--pd,0s);transform-origin:center}
@keyframes pin-pulse{0%{transform:scale(.5);opacity:.85}70%{opacity:0}100%{transform:scale(2.6);opacity:0}}

@media(prefers-reduced-motion:reduce){
  .wrap h1,.wrap .lead,.wrap .sub,.wrap .nav,.wrap .gauge,.wrap .stats,.wrap .card,.wrap .field,.wrap .upd{animation:none}
  .gauge.ready,.gauge.ready::before,.gauge.ready .gv .ph,.gauge.ready .gv .n,.gauge.ready .gv::after,.btn,.btn-blue,.laser-map .conn,.laser-map .halo{animation:none}
}

/* ===== SEO-статья (prose) ===== */
.article-wrap{padding-top:0;animation:fade-up .7s ease both}
.article{margin:0 auto;max-width:1060px;border-top:1px solid var(--line);padding-top:34px;color:var(--mut);display:flow-root}
.article p,.article h2,.article h3{max-width:none}
.article h2{clear:both}
.article h2{font-size:clamp(20px,2.4vw,26px);font-weight:800;color:var(--txt);letter-spacing:-.4px;margin-bottom:14px}
.article h3{font-size:16px;font-weight:700;color:var(--txt);margin:26px 0 12px}
.article p{font-size:15px;line-height:1.75;margin-bottom:14px}
.article strong{color:var(--txt);font-weight:700}
.article details{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:0;margin-bottom:10px;overflow:hidden}
.article details summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:600;color:var(--txt);font-size:14.5px;display:flex;justify-content:space-between;align-items:center}
.article details summary::-webkit-details-marker{display:none}
.article details summary::after{content:"+";color:var(--gold);font-size:20px;font-weight:400;line-height:1}
.article details[open] summary::after{content:"–"}
.article details p{padding:0 16px 16px;margin:0;font-size:14px}
.article ul,.article ol{margin:0 0 14px;padding-left:20px}
.article li{font-size:15px;line-height:1.7;margin-bottom:7px;color:var(--mut)}
.article a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(42,171,238,.3)}
.article a:hover{border-bottom-color:var(--blue)}
/* картинки в статьях — тематические иллюстрации (FAL.ai); чередуются лево/право с обтеканием текстом */
.article figure.art-img{margin:10px auto 20px;max-width:520px;break-inside:avoid}
@media(min-width:820px){
  .article figure.art-img{width:42%;max-width:460px;margin:6px 0 16px}
  .article figure.art-img:nth-of-type(odd){float:left;margin-right:32px}
  .article figure.art-img:nth-of-type(even){float:right;margin-left:32px}
}
.article figure.art-img img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.35);cursor:zoom-in;transition:transform .25s}
.article figure.art-img img:hover{transform:translateY(-2px)}
.article figure.art-img figcaption{margin-top:8px;font-size:12.5px;color:var(--mut2);text-align:center;font-style:italic}
/* лайтбокс: клик по картинке → чёткая копия по центру страницы поверх размытого фона; клик/Esc — закрыть */
.art-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(4,8,20,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:zoom-out;animation:zoom-fade .2s ease both}
.art-lightbox img{max-width:min(92vw,1000px);max-height:90vh;width:auto;height:auto;border-radius:14px;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,.7)}
@keyframes zoom-fade{from{opacity:0}to{opacity:1}}

/* ===== звёздное небо (мерцание + редкие вспышки) ===== */
.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 82%);mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 82%)}
.star{position:absolute;border-radius:50%;background:#cfe6ff;opacity:.4;box-shadow:0 0 4px rgba(207,230,255,.6);animation:twinkle var(--d,4s) ease-in-out infinite;animation-delay:var(--t,0s)}
@keyframes twinkle{0%,100%{opacity:.12}50%{opacity:.95}}
.nova{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;animation:nova var(--d,12s) ease-out infinite;animation-delay:var(--t,0s)}
@keyframes nova{0%,82%{transform:scale(.6);opacity:.35;box-shadow:0 0 4px rgba(255,255,255,.5)}90%{transform:scale(7);opacity:0;box-shadow:0 0 22px 3px rgba(125,211,252,.7),0 0 42px 10px rgba(245,196,81,.4)}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.star,.nova{animation:none;opacity:.4}}

/* ===== кроссплатформенные иконки (вместо эмодзи) ===== */
.ic{width:1em;height:1em;display:inline-block;vertical-align:-.13em;flex:none}
.flag-img{width:20px;height:15px;border-radius:2px;object-fit:cover;vertical-align:-.18em;margin-inline-end:8px;box-shadow:0 0 0 1px rgba(255,255,255,.08)}

/* ===== футер ===== */
.footer{margin-top:64px;border-top:1px solid var(--line);background:rgba(8,12,30,.66);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr;gap:40px;padding:48px 10px 38px;max-width:1080px;margin-left:auto;margin-right:auto;justify-items:start}/* 1080 border-box − 2×10 padding = 1060 контента → края совпадают с таблицами; justify-items:start = колонки от левого края трека */
.fbrand{display:flex;flex-direction:column;align-items:flex-end;text-align:right;justify-self:end}
.fbrand .flogo-img{margin-left:auto}
.fbrand .ftag{margin-top:6px}
.flogo-img{display:block;width:140px;height:auto;border-radius:14px;margin-bottom:14px}
.fbrand{max-width:360px}
.flogo{font-weight:800;font-size:21px;letter-spacing:-.4px;margin-bottom:13px}
.ftag{color:var(--mut);font-size:13.5px;line-height:1.7}
.fcol h4{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--gold);margin-bottom:15px;font-weight:700;min-height:14px}
.fcol a{display:block;color:var(--mut);font-size:13.5px;padding:6px 0;transition:color .15s,transform .15s}
.fcol a:hover{color:var(--cyan);transform:translateX(2px)}
.fbottom{border-top:1px solid var(--line)}
.fbottom-in{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:20px 10px;color:var(--mut2);font-size:13px;max-width:1080px;margin-left:auto;margin-right:auto}
.fbottom-links a{color:var(--mut2);margin-inline-start:20px;transition:color .15s}.fbottom-links a:hover{color:var(--txt)}
@media(max-width:760px){.footer-top{grid-template-columns:1fr 1fr;gap:30px}.fbrand{grid-column:1/-1;align-items:center;text-align:center;order:-1}.fbrand .flogo-img{margin:0 auto}}
/* страницы Privacy/Terms */
.legal{margin:0}
/* сетка активов на странице markets */
.asset-grid-wrap{display:flex;flex-direction:column;gap:18px}
.agcat h3{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--mut2);margin:0 0 10px;font-weight:700}
.agrow{display:flex;flex-wrap:wrap;gap:10px}
.agi{display:inline-flex;align-items:center;padding:10px 16px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,rgba(20,28,56,.6),rgba(11,18,38,.6));color:var(--txt);font-weight:600;font-size:14px;transition:border-color .15s,color .15s}
.agi:hover{border-color:var(--cyan);color:var(--cyan)}
/* тесты устройства */
.dv-widget{margin:6px 0 8px}
.dv-stage{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(20,28,56,.5),rgba(11,18,38,.5));padding:18px;margin-bottom:14px}
.dv-stage video{width:100%;max-width:760px;display:block;margin:0 auto;border-radius:12px;background:#000;aspect-ratio:16/9;object-fit:cover}
.dv-ctrl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.dv-sel{background:var(--panel2);border:1px solid var(--line);color:var(--txt);padding:11px 13px;border-radius:11px;font-size:14px;font-family:inherit;outline:none;max-width:280px}
.btn.ghost{background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
.dv-info{color:var(--mut);font-size:14px;line-height:1.6}.dv-info b{color:var(--txt)}
.dv-meter{width:100%;max-width:600px;height:18px;border-radius:9px;background:var(--panel2);border:1px solid var(--line);overflow:hidden}
.dv-meter-fill{height:100%;width:0;background:linear-gradient(90deg,#34d399,#f7d27a,#ff6ec4);transition:width .05s}
.dv-keys{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.dv-key{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--mut);font-size:13px;font-family:ui-monospace,Menlo,monospace}
.dv-key.on{border-color:var(--cyan);color:var(--cyan);background:rgba(125,211,252,.12)}
.dv-mouse{display:flex;gap:10px;justify-content:center;margin-top:60px}
.dv-mouse .mb{width:52px;height:52px;border-radius:11px;border:1px solid var(--line);background:var(--panel2);color:var(--mut);display:flex;align-items:center;justify-content:center;font-weight:800}
.dv-mouse .mb.on{border-color:var(--cyan);color:var(--cyan);background:rgba(125,211,252,.14)}
.dv-screen{position:fixed;inset:0;z-index:9999;background:#000;width:100vw;height:100vh}
.dv-sample{border:1px solid var(--line);border-radius:14px;background:var(--panel2);padding:16px 18px;font-size:18px;line-height:1.7;color:var(--mut);margin-bottom:12px;font-family:ui-monospace,Menlo,monospace}
.dv-sample .ok{color:var(--mint)}.dv-sample .bad{color:var(--pink);background:rgba(255,110,196,.15);border-radius:3px}
.dv-type{width:100%;min-height:110px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--txt);padding:14px 16px;font-size:17px;font-family:ui-monospace,Menlo,monospace;outline:none;resize:vertical;margin-bottom:12px}
.dv-type:focus{border-color:var(--cyan)}
.dv-stats{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px}
.dv-stats>div{flex:1;min-width:90px;border:1px solid var(--line);border-radius:13px;background:var(--panel2);padding:12px 14px;text-align:center}
.dv-stats b{display:block;font-size:24px;font-weight:850;letter-spacing:-.5px;font-feature-settings:"tnum";overflow-wrap:break-word;word-break:break-word;hyphens:auto}
/* длинные текстовые значения (а не числа): «на 118% дороже среднемировой», названия стран — мельче, чтоб не вылезали */
.dv-stats b.dv-phrase{font-size:clamp(14px,4.4vw,17px);font-weight:800;letter-spacing:0;line-height:1.25}
.dv-stats span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut2)}
.dv-react{height:240px;border-radius:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;font-weight:800;color:#08122a;margin-bottom:14px;user-select:none;background:#33405e;transition:background .1s}
.dv-react.wait{background:#e0982f}.dv-react.go{background:#34d399}
/* сетка хаба тестов устройства */
.dv-hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:8px}
.dv-tile{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:15px;padding:16px 18px;background:linear-gradient(180deg,rgba(20,28,56,.6),rgba(11,18,38,.6));color:var(--txt);transition:border-color .15s,transform .15s}
.dv-tile:hover{border-color:var(--cyan);transform:translateY(-2px)}
.dv-tile .em{font-size:26px;line-height:1}.dv-tile b{font-weight:700;font-size:15px}
/* центрированная колонка для тул/тест-страниц (виджет + хаб + статья по центру) */
.tool-col{max-width:1060px;margin:0 auto}
.tool-col .dv-widget{margin:8px 0 10px}
.article-center{column-count:1!important;border-top:1px solid var(--line);padding-top:30px;margin-top:26px}
.tool-col .dv-hub{margin-top:4px}
/* generic tool widgets */
.tl-out{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--txt);padding:16px 18px;font-family:ui-monospace,Menlo,monospace;font-size:16px;word-break:break-all;min-height:24px;white-space:pre-wrap;line-height:1.6}
.tl-copy{position:absolute;top:8px;inset-inline-end:8px;border:1px solid var(--line);background:var(--panel);color:var(--mut);border-radius:9px;padding:9px 15px;font-size:13px;cursor:pointer;font-family:inherit}
.tl-copy:hover{color:var(--cyan);border-color:var(--cyan)}
.tl-opts{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:12px 0}
.tl-opts label{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--mut);cursor:pointer}
.tl-opts input[type=range]{accent-color:var(--cyan)}.tl-opts input[type=checkbox]{accent-color:var(--cyan);width:17px;height:17px}
.tl-grid{display:grid;gap:10px}.tl-ta{width:100%;min-height:150px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--txt);padding:14px 16px;font-size:15px;font-family:inherit;outline:none;resize:vertical;line-height:1.6}
.tl-ta:focus{border-color:var(--cyan)}
.tl-swatch{display:flex;flex-direction:column;border-radius:13px;overflow:hidden;border:1px solid var(--line);cursor:pointer}
.tl-swatch .c{height:90px}.tl-swatch .h{padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:13px;background:var(--panel2);text-align:center}
.tl-pal{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.fancy-list{display:grid;gap:10px}.fancy-item{border:1px solid var(--line);border-radius:12px;background:var(--panel2);padding:12px 14px;font-size:19px;cursor:pointer;word-break:break-word}.fancy-item:hover{border-color:var(--cyan)}
.legal h2{font-size:20px;font-weight:800;color:var(--txt);margin:28px 0 12px}
.legal p{color:var(--mut);font-size:15px;line-height:1.75;margin-bottom:14px}
.legal ul{color:var(--mut);font-size:15px;line-height:1.75;margin:0 0 14px 20px}
.legal a{color:var(--cyan)}
/* финансовые калькуляторы */
.fin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:6px}
.fin-form label,.fin-grid2 label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mut);font-weight:600}
.fin-form input,.fin-form select,.fin-grid2 input,.fin-grid2 select{background:var(--panel2);border:1px solid var(--line);color:var(--txt);padding:12px 13px;border-radius:11px;font-size:16px;font-family:inherit;outline:none;font-feature-settings:"tnum"}
.fin-form input:focus,.fin-form select:focus,.fin-grid2 input:focus,.fin-grid2 select:focus{border-color:var(--cyan)}
.fin-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:18px}
.fin-res>div{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(20,28,56,.7),rgba(11,18,38,.7));padding:16px 18px;text-align:center}
.fin-res span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut2);font-weight:700;margin-bottom:6px}
.fin-res b{font-size:clamp(20px,3vw,28px);font-weight:850;letter-spacing:-.5px;font-feature-settings:"tnum"}
.fin-res>div:first-child b{color:var(--cyan)}
.fin-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.fin-card{border:1px solid var(--line);border-radius:14px;background:var(--panel2);padding:16px}
.fin-card h4{margin:0 0 12px;font-size:14px;color:var(--cyan)}
.fin-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}
.fin-inline input{width:90px;background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:9px 10px;border-radius:9px;font-size:15px}
.fin-inline b{color:var(--gold);font-weight:800;font-size:17px}
.fin-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:8px}
/* конвертеры картинок */
.img-drop{border:2px dashed var(--line);border-radius:16px;padding:40px 20px;text-align:center;color:var(--mut);cursor:pointer;background:var(--panel2);font-size:16px;transition:.15s}
.img-drop:hover,.img-drop.drag{border-color:var(--cyan);color:var(--cyan);background:rgba(125,211,252,.05)}
.img-prev{max-width:100%;max-height:340px;border-radius:12px;margin-top:14px;border:1px solid var(--line);display:block}
.img-opts{margin-top:14px}
/* PDF инструменты */
.pdf-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.pdf-list .pf{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);padding:10px 14px;font-size:14px}
.pdf-list .pf .x{margin-inline-start:auto;cursor:pointer;color:var(--pink);font-weight:800}
.pdf-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.pdf-thumbs a{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel2)}
.pdf-thumbs img{width:100%;display:block}.pdf-thumbs span{display:block;padding:6px;font-size:12px;text-align:center;color:var(--mut)}
/* печатаемые документы (инвойс/резюме) */
.doc-paper{background:#fff;color:#1a1a1a;border-radius:12px;padding:40px;margin-top:14px;font-family:Arial,Helvetica,sans-serif;line-height:1.5}
.doc-paper h2,.doc-paper h3{color:#111}.doc-paper a{color:#2563eb}
.doc-paper table{width:100%;border-collapse:collapse;margin:14px 0}.doc-paper th,.doc-paper td{padding:9px;border-bottom:1px solid #e5e7eb;text-align:left}.doc-paper th{background:#f3f4f6}
@media print{body{background:#fff!important}body *{visibility:hidden}.doc-paper,.doc-paper *{visibility:visible}.doc-paper{position:absolute;inset:0;margin:0;border-radius:0;box-shadow:none}}
/* cookie-баннер */
.cookie-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:9998;display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;
  background:rgba(8,12,30,.92);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:14px 18px;box-shadow:0 18px 60px rgba(0,0,0,.5);font-size:14px;color:var(--mut);max-width:1100px;margin:0 auto;animation:fade-up .5s ease both}
.cookie-bar a{color:var(--cyan)}
.cookie-bar .cb-act{display:flex;gap:10px;flex-shrink:0}
.cookie-bar button{cursor:pointer;border-radius:10px;padding:10px 18px;font-weight:700;font-size:14px;font-family:inherit;border:1px solid var(--line)}
.cookie-bar .cb-no{background:var(--panel2);color:var(--mut)}
.cookie-bar .cb-yes{background:var(--grad-gold);color:#2a1c05;border:0}
.cookie-bar .cb-yes:hover{filter:brightness(1.05)}
/* главная: полоса статистики + каталог инструментов */
.stats-band{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:34px auto 6px;max-width:1100px}
.stats-band .sb{flex:1;min-width:150px;text-align:center;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(20,28,56,.55),rgba(11,18,38,.55));padding:18px 14px;backdrop-filter:blur(6px)}
.stats-band .sb b{display:block;font-size:clamp(24px,4vw,32px);font-weight:850;letter-spacing:-1px;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.stats-band .sb span{font-size:13px;color:var(--mut)}
.home-tools{max-width:1240px;margin:44px auto 10px}
.home-tools h2{font-size:clamp(22px,3.2vw,32px);font-weight:850;letter-spacing:-.6px;text-align:center;margin-bottom:6px}
.home-tools .hsub{text-align:center;color:var(--mut);margin-bottom:30px;font-size:15px}
.home-cat{margin-bottom:28px}
.home-cat h3{font-size:13px;text-transform:uppercase;letter-spacing:.7px;color:var(--gold);font-weight:800;margin:0 0 13px;display:flex;align-items:center;gap:9px}
.home-cat h3 .ce{font-size:18px}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px}
.home-tile{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:linear-gradient(180deg,rgba(20,28,56,.6),rgba(11,18,38,.6));transition:transform .16s,border-color .16s,box-shadow .16s;color:var(--txt)}
.home-tile:hover{border-color:var(--cyan);transform:translateY(-3px);box-shadow:0 12px 32px rgba(42,171,238,.16)}
.home-tile .he{font-size:23px;line-height:1;flex:none}
.home-tile b{font-weight:700;font-size:15px}

/* ЕДИНЫЙ ФОРМАТ ВСЕХ СТРАНИЦ: каркас (топбар+меню+фон) на ВСЮ ширину, а ВЕСЬ контент —
   в одной центрированной колонке 1060px (как у статей). Убирает разнобой 940/1080/full-width. */
.wrap.lookup{max-width:none}
.wrap>:not(.topbar):not(.nav){max-width:1060px;margin-left:auto!important;margin-right:auto!important}
.wrap>iframe,.wrap>img,.wrap>canvas,.wrap>svg{display:block}

/* лого-картинка в топбаре (заменяет текстовый вордмарк) */
.logo-img{display:inline-flex;align-items:center;line-height:0}
.logo-img img{display:block;height:60px;width:60px;border-radius:13px}
/* большая шапка: лого слева (500px), меню+язык справа */
.topbar.bighead{align-items:center;gap:30px;flex-wrap:wrap;margin-bottom:18px}
.bighead .logo-img img{width:180px;height:auto;max-width:46vw;border-radius:16px}
.headright{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:14px;flex:1;min-width:320px}
.headright .langsel{align-self:flex-end}
.bighead .headright .nav{margin:0;justify-content:flex-start}
@media(max-width:760px){.bighead{justify-content:center;gap:14px}.bighead .logo-img img{width:160px;max-width:58vw}.headright{align-items:center}.bighead .headright .nav{justify-content:center}}

/* ===== ПОЛИШ-БАТЧ ===== */
/* плавное появление/закрытие лайтбокса картинок (выезд + возврат) */
.art-lightbox{animation:lb-bg-in .3s ease both}
.art-lightbox.closing{animation:lb-bg-out .27s ease both}
.art-lightbox img{animation:lb-img-in .38s cubic-bezier(.22,1,.36,1) both}
.art-lightbox.closing img{animation:lb-img-out .27s cubic-bezier(.4,0,1,1) both}
@keyframes lb-bg-in{from{opacity:0}to{opacity:1}}
@keyframes lb-bg-out{from{opacity:1}to{opacity:0}}
@keyframes lb-img-in{from{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes lb-img-out{from{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.86) translateY(12px)}}

/* справочные/данные-таблицы .fx — зебра + аккуратное распределение (country-codes/ascii/mime) */
table.fx{width:100%;border-collapse:collapse;font-size:14px}
table.fx thead th{position:sticky;top:0;background:#0b1226;color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;padding:13px 18px;text-align:end;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
table.fx th.l,table.fx td.l{text-align:start}
table.fx tbody td{padding:12px 18px;border-bottom:1px solid var(--line);text-align:end;font-feature-settings:"tnum"}
table.fx tbody tr:nth-child(even){background:rgba(125,211,252,.05)}
table.fx tbody tr:hover{background:rgba(125,211,252,.1)}
table.fx tbody tr:last-child td{border-bottom:0}

/* переключатель языка = пункт меню (последним в .nav), чуть меньше остальных пунктов */
.nav .langsel{display:inline-flex;align-items:center;position:relative}
.nav .langsel>summary{font-size:13px;color:var(--mut);border:1px solid var(--line);background:var(--panel);padding:8px 13px;border-radius:11px;font-weight:600;cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px}
.nav .langsel>summary::-webkit-details-marker{display:none}
.nav .langsel>summary:hover{color:var(--txt);border-color:var(--ice)}

/* ===== БУРГЕР-МЕНЮ (мобильные/планшеты ≤900px) ===== */
.navtoggle{display:none;align-items:center;justify-content:center;width:54px;height:54px;border:1px solid var(--line);background:var(--panel);color:var(--txt);border-radius:13px;cursor:pointer;flex:0 0 auto;padding:0}
.navtoggle:hover{border-color:var(--ice);color:var(--cyan)}
@media(max-width:900px){
  .bighead{position:relative;justify-content:space-between!important;align-items:center;gap:12px}
  .bighead .logo-img img{width:172px;max-width:60vw}
  .navtoggle{display:inline-flex}
  .headright{flex:0 0 auto;flex-direction:row;align-items:center;justify-content:flex-end;min-width:0;gap:10px}
  /* язык — отдельный чип в баре (не в бургере); крупнее под палец */
  .headright>.langsel{align-self:center}
  .headright>.langsel>summary{padding:14px 15px;font-size:15px;border-radius:13px}
  .langmenu{width:min(300px,calc(100vw - 80px));top:calc(100% + 10px)}
  .headright>.nav{display:none}
  .headright.open>.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;position:absolute;top:calc(100% + 8px);left:0;right:0;background:#0c1330;border:1px solid var(--line);border-radius:16px;padding:14px;z-index:9001;box-shadow:0 26px 70px rgba(0,0,0,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);max-height:72vh;overflow:auto;margin:0}
}

/* инпуты тулов не вылазят за контейнер (dev/hex-rgb, timestamp и пр.): грид-айтемы сжимаемы + инпут на всю колонку */
.dv-widget input{max-width:100%}
.dv-widget .tl-grid>*,.dv-widget .ucf{min-width:0}
.dv-widget .ucf input{width:100%}
/* мобильный: action-кнопки функционала по центру (GPS-детект на спидтесте + ряды управления в тулах) */
@media(max-width:760px){
  #geobtn{display:block;width:-moz-fit-content;width:fit-content;margin-left:auto;margin-right:auto}
  .dv-ctrl{justify-content:center}
}

/* ===== МОБИЛЬНАЯ СТАБИЛЬНОСТЬ (≤900px) =====
   iOS Safari ронял вкладку («A problem repeatedly occurred») — нехватка памяти из-за тяжёлых композитных слоёв:
   3D-сетка-пол с perspective+бесконечной анимацией, зеркальная верхняя сетка, звёзды, transform/will-change на фоне,
   многочисленные backdrop-filter:blur. На мобильном оставляем плоский брендовый фон без дорогого композитинга. */
@media(max-width:900px){
  body::before{position:fixed;inset:0;transform:none!important;animation:none!important;will-change:auto!important;transition:none!important;
    background:radial-gradient(120vw 55vh at 72% -8%,rgba(74,158,255,.16) 0%,transparent 60%),radial-gradient(95vw 48vh at 8% 0%,rgba(245,196,81,.10) 0%,transparent 55%),linear-gradient(180deg,#070b1f,#0c1330 55%,#070b1f)}
  body::after{display:none!important}
  .grid-floor,.grid-floor-top,.grid-horizon,.stars{display:none!important}
  .card,.footer,.langmenu,.headright.open>.nav,.w,.st,.server,.crwrap,.buywrap,.tvbox{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

/* перелинковка: блок «Related tools» (SEO + UX) */
.related-tools{max-width:1180px;margin:34px auto 0;padding:0 10px}
.related-tools h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut,#9fb0d0);margin:0 0 12px;font-weight:600}
.rel-row{display:flex;flex-wrap:wrap;gap:10px}
.rel-tool{display:inline-flex;align-items:center;padding:9px 16px;border:1px solid var(--line,#1d2740);border-radius:11px;background:var(--panel2,#0d1426);color:var(--txt,#e7eefc);font-size:14px;text-decoration:none;transition:border-color .15s,background .15s}
.rel-tool:hover{border-color:var(--accent,#e0982f);background:var(--panel,#111a30)}

/* живой график спидтеста на главной */
.sp-graphwrap{max-width:520px;margin:18px auto 0;background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:14px 14px 8px}
.sp-graph{width:100%;height:140px;display:block}
.sp-legend{display:flex;gap:18px;justify-content:center;margin-top:6px;font-size:12px;color:var(--mut2)}
.sp-legend i{display:inline-block;width:11px;height:3px;border-radius:2px;margin-inline-end:6px;vertical-align:middle}

/* ── temp-mail (одноразовая почта) ───────────────────────────── */
.tm{display:flex;flex-direction:column;gap:18px;text-align:left}
.tm-addrwrap{background:linear-gradient(135deg,rgba(247,210,122,.10),rgba(42,171,238,.08));border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.tm-addrbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tm-addr{flex:1;min-width:220px;font-size:clamp(18px,3.4vw,26px);font-weight:700;letter-spacing:.3px;color:var(--gold);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;cursor:pointer;word-break:break-all}
.tm-copy{background:var(--grad-gold);color:#1a1407;border:0;font-weight:700;padding:10px 18px;border-radius:12px;cursor:pointer;white-space:nowrap;transition:transform .1s}
.tm-copy:hover{transform:translateY(-1px)}
.tm-copy.ok{background:var(--mint);color:#06301f}
.tm-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.tm-dom{background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;cursor:pointer;font-family:ui-monospace,monospace}
.tm-btn{background:var(--panel);color:var(--cyan);border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s}
.tm-btn:hover{border-color:var(--blue)}
.tm-ttlnote{color:var(--mut2);font-size:12.5px;margin-left:auto}
.tm-inbox{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden;min-height:280px}
.tm-inbox-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;color:var(--mut)}
.tm-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--mint);font-weight:600}
.tm-dot{width:8px;height:8px;border-radius:50%;background:var(--mint);animation:tm-pulse 1.8s infinite}
@keyframes tm-pulse{0%{box-shadow:0 0 0 0 rgba(110,231,183,.5)}70%{box-shadow:0 0 0 7px rgba(110,231,183,0)}100%{box-shadow:0 0 0 0 rgba(110,231,183,0)}}
.tm-list{list-style:none}
.tm-item{padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.tm-item:hover{background:rgba(42,171,238,.06)}
.tm-it-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.tm-it-from{font-weight:700;color:var(--txt);font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-it-time{color:var(--mut2);font-size:12px;white-space:nowrap}
.tm-it-subj{color:var(--cyan);font-size:14px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-it-prev{color:var(--mut);font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-it-clip{display:inline-block;margin-top:6px;font-size:12px;color:var(--mut2)}
.tm-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:46px 24px;gap:10px}
.tm-empty-t{color:var(--txt);font-weight:600;font-size:15px}
.tm-empty-s{color:var(--mut2);font-size:13px;max-width:380px}
.tm-spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:tm-spin .9s linear infinite}
@keyframes tm-spin{to{transform:rotate(360deg)}}
.tm-view{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}
.tm-view-head{padding:12px 16px;border-bottom:1px solid var(--line)}
.tm-back{background:none;border:0;color:var(--cyan);font-size:14px;font-weight:600;cursor:pointer;padding:4px 0}
.tm-view-meta{padding:14px 16px;border-bottom:1px solid var(--line)}
.tm-vfrom{color:var(--mut);font-size:13px;word-break:break-all}
.tm-vsubj{color:var(--txt);font-weight:700;font-size:17px;margin:4px 0}
.tm-vdate{color:var(--mut2);font-size:12.5px}
.tm-atts{color:var(--gold);font-size:13px;margin-top:8px;word-break:break-word}
.tm-body{width:100%;height:min(60vh,560px);border:0;background:#fff;display:block}
@media(prefers-reduced-motion:reduce){.tm-dot,.tm-spin{animation:none}}

/* ── fuel prices (world + US) ── */
.fuel-search{width:100%;max-width:340px;margin:0 0 12px;padding:9px 12px;border-radius:10px;
 border:1px solid var(--line);background:var(--panel);color:var(--fg);font-size:14px}
.fuel-note{color:var(--mut);font-size:12.5px;margin:10px 0 0;line-height:1.5}
.fuel-spark{display:block;margin:6px 0 2px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:10px}
table.fuel-tbl th[data-k]{cursor:pointer;white-space:nowrap}
table.fuel-tbl th[data-k]:hover{color:var(--acc)}

/* ── грид цен на топливо: каждая страна/штат = крупная карточка-ячейка ── */
.fuel-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:10px 0 16px}
.fuel-tools .fuel-search{margin:0;flex:1 1 240px;max-width:380px}
.fuel-sort{display:flex;flex-wrap:wrap;gap:6px}
.fuel-sort button{font:inherit;font-size:12.5px;font-weight:600;color:var(--mut);background:var(--panel);
  border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer;
  transition:color .15s,background .15s,border-color .15s;white-space:nowrap}
.fuel-sort button:hover{color:var(--txt);border-color:var(--acc)}
.fuel-sort button.on{color:#08122a;background:var(--grad-gold);border-color:transparent}
.fuel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin:0 0 6px}
.fc-card{position:relative;display:flex;flex-direction:column;gap:7px;padding:18px;
  border:1px solid var(--line);border-radius:16px;
  background:linear-gradient(180deg,rgba(20,28,56,.6),rgba(11,18,38,.55));
  color:var(--txt);text-decoration:none;overflow:hidden;
  transition:border-color .15s,transform .15s,box-shadow .15s,background .15s}
.fc-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:var(--grad-gold);opacity:0;transition:opacity .15s}
.fc-card:hover{border-color:var(--acc);transform:translateY(-3px);
  box-shadow:0 16px 38px rgba(0,0,0,.4);background:linear-gradient(180deg,rgba(28,38,72,.7),rgba(13,21,44,.6))}
.fc-card:hover::before{opacity:1}
.fc-rank{position:absolute;top:13px;inset-inline-end:15px;font-size:12px;font-weight:800;
  color:var(--mut2);font-feature-settings:"tnum"}
.fc-flag{font-size:34px;line-height:1}
.fc-name{font-size:15.5px;font-weight:700;line-height:1.25;padding-inline-end:26px}
.fc-name-lg{font-size:18px;margin-bottom:2px}
.fc-price{display:flex;align-items:baseline;gap:6px;font-size:27px;font-weight:850;letter-spacing:-.5px;
  color:var(--acc);font-feature-settings:"tnum";line-height:1;margin-top:auto;flex-wrap:wrap}
.fc-price small{font-size:11.5px;font-weight:600;color:var(--mut);letter-spacing:0;
  text-transform:lowercase}
.fc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:2px}
.fc-m{font-size:11.5px;color:var(--mut);font-feature-settings:"tnum"}
.fc-m b{color:var(--txt);font-weight:700;margin-inline-end:4px}
.fc-card-metro{gap:10px}
.fc-card-metro .fc-name-lg{font-size:15px;line-height:1.3;padding:0}
.fc-card-metro .fc-price{font-size:22px}
.fuel-empty{color:var(--mut);font-size:14px;text-align:center;padding:24px 0}
@media(max-width:560px){
  .fuel-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .fc-card{padding:15px}.fc-flag{font-size:28px}.fc-price{font-size:23px}
}

/* ── интерактивный график истории цен ── */
.fuelc{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(20,28,56,.45),rgba(11,18,38,.4));padding:12px 12px 10px;margin:8px 0 4px}
.fuelc-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:6px}
.fuelc-legend{display:flex;flex-wrap:wrap;gap:14px}
.fuelc-li{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--mut);font-weight:600}
.fuelc-li i{width:11px;height:11px;border-radius:3px;display:inline-block}
.fuelc-ranges{display:flex;flex-wrap:wrap;gap:4px}
.fuelc-ranges button{font:inherit;font-size:11.5px;font-weight:700;color:var(--mut);background:transparent;border:1px solid var(--line);border-radius:8px;padding:5px 9px;cursor:pointer;transition:.13s;min-width:34px}
.fuelc-ranges button:hover{color:var(--txt);border-color:var(--acc)}
.fuelc-ranges button.on{color:#08122a;background:var(--grad-gold);border-color:transparent}
.fuelc-plot{position:relative;width:100%;touch-action:pan-y}
.fuelc-svg{display:block;width:100%}
.fuelc-grid{stroke:var(--line);stroke-width:1;opacity:.5}
.fuelc-yl,.fuelc-xl{fill:var(--mut2);font-size:11px;font-family:inherit}
.fuelc-cross{stroke:var(--acc);stroke-width:1;stroke-dasharray:3 3;opacity:.7}
.fuelc-tip{position:absolute;z-index:5;pointer-events:none;display:none;background:rgba(8,12,30,.96);border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:12.5px;color:var(--txt);box-shadow:0 12px 30px rgba(0,0,0,.5);min-width:120px;backdrop-filter:blur(6px)}
.fuelc-tdate{color:var(--mut2);font-size:11px;margin-bottom:5px;font-weight:600}
.fuelc-trow{display:flex;align-items:center;gap:6px;line-height:1.7;white-space:nowrap}
.fuelc-trow i{width:9px;height:9px;border-radius:2px;display:inline-block}
.fuelc-trow b{margin-inline-start:auto;font-feature-settings:"tnum"}
.fuelc-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px;font-size:12px;color:var(--mut)}
.fuelc-meta b{color:var(--txt);font-weight:700;font-feature-settings:"tnum"}
.fuelc-chg.up b{color:var(--coral)}.fuelc-chg.dn b{color:var(--mint)}

/* ── fuel charts + featured countries ── */
.fuel-chart-wrap{margin:8px 0 2px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);padding:8px 6px}
.fuel-chart{display:block;width:100%;height:auto}
.fuel-feat{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:6px 0 18px}
.fuel-feat-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);
 border-radius:12px;background:var(--panel);color:var(--fg);text-decoration:none;transition:border-color .15s,transform .15s}
.fuel-feat-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.fuel-feat-card .ff-flag{font-size:22px;line-height:1}
.fuel-feat-card b{font-size:14px}
.fuel-feat-card .ff-price{color:var(--acc);font-weight:700;font-size:14px}
.fuel-feat-card .ff-sub{color:var(--mut);font-size:11.5px}
.fuel-related{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.fuel-related a{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);
 color:var(--fg);text-decoration:none;font-size:13px}
.fuel-related a:hover{border-color:var(--acc)}

/* ── погода /weather/ ── */
.wx-unit{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}
.wx-unit button{background:var(--panel);color:var(--mut);border:0;padding:7px 16px;font-size:14px;font-weight:700;cursor:pointer}
.wx-unit button.on{background:var(--acc);color:#10131f}
.wx-sec{margin:22px 0}
.wx-sec h2{font-size:18px;margin:0 0 12px}
.wx-now{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 22px}
.wx-now-main{display:flex;align-items:center;gap:10px}
.wx-ic{font-size:54px;line-height:1}
.wx-temp{font-size:58px;font-weight:850;letter-spacing:-2px;color:var(--fg)}
.wx-cond{font-size:19px;font-weight:700;color:var(--fg)}
.wx-feels{font-size:14px;color:var(--mut)}
.wx-stats,.wx-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.wx-st{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 13px;display:flex;flex-direction:column;gap:3px}
.wx-st span{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.wx-st b{font-size:16px;color:var(--fg);font-weight:750}
.wx-st b a{color:var(--cyan);text-decoration:none}
.wx-chart{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px}
.wxc-svg{display:block;min-width:720px;width:100%;height:auto}
.wxc-t{fill:var(--fg);font-size:11px;font-weight:700}
.wxc-x{fill:var(--mut);font-size:11px}
.wxc-d{fill:var(--acc);font-size:11px;font-weight:700}
.wx-days{display:flex;flex-direction:column;gap:4px}
.wx-day{display:grid;grid-template-columns:1fr 38px 60px 52px 52px;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:9px 14px}
.wx-day-d{font-weight:700;color:var(--fg)}
.wx-day-ic{font-size:22px;text-align:center}
.wx-day-pp{font-size:12px;color:var(--cyan);text-align:right}
.wx-day-hi{font-weight:800;color:var(--fg);text-align:right}
.wx-day-lo{color:var(--mut);text-align:right}
.wx-updated{font-size:12px;color:var(--mut);margin-top:8px}
.wx-loading,.wx-err{color:var(--mut);padding:18px}
.wx-err{color:var(--pink)}
.wx-search{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--txt);padding:11px 14px;border-radius:11px;margin:6px 0 14px;font-size:15px}
.wx-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:8px}
.wx-feat{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px 15px;text-decoration:none}
.wx-feat:hover{border-color:var(--acc)}
.wx-feat-fl{font-size:22px}
.wx-feat b{color:var(--fg);font-size:16px}
.wx-feat-c{color:var(--mut);font-size:12px}
.wx-ccgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.wx-ccard{display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:10px 13px;text-decoration:none}
.wx-ccard:hover{border-color:var(--acc)}
.wx-flag{font-size:20px}
.wx-ccn{color:var(--fg);font-weight:650;flex:1}
.wx-ccc{color:var(--mut);font-size:12px}
.wx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}
.wx-card{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px 14px;text-decoration:none}
.wx-card:hover{border-color:var(--acc)}
.wx-card-n{color:var(--fg);font-weight:700}
.wx-card-p{color:var(--mut);font-size:12px}
.wx-cap{color:var(--acc);margin-left:5px;font-size:12px}
@media(max-width:560px){.wx-temp{font-size:46px}.wx-ic{font-size:42px}.wx-day{grid-template-columns:1fr 32px 50px 44px 44px}}
.wx-clim-intro{color:var(--mut);font-size:14px;margin:0 0 12px}

/* ── fuel ranking bar chart ── */
.fbars{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);padding:12px 14px}
.fbar{display:grid;grid-template-columns:minmax(120px,1.6fr) 3fr auto;align-items:center;gap:10px;font-size:13px}
.fbar-l{color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fbar-t{background:rgba(255,255,255,.05);border-radius:6px;height:12px;overflow:hidden}
.fbar-f{display:block;height:100%;background:linear-gradient(90deg,#e0982f,#f7d27a);border-radius:6px}
.fbar-v{color:var(--acc);font-weight:700;font-variant-numeric:tabular-nums}
.fbar-avg .fbar-l{color:var(--mut)}
@media(max-width:560px){.fbar{grid-template-columns:minmax(90px,1.4fr) 2fr auto;font-size:12px}}
