:root{
  --bg:#f4f5f2;--panel:#ffffff;--panel2:#eef0ec;--ink:#15171a;--mute:#646a73;--line:#dfe2dc;
  --acc:#0b8f7c;--acc-ink:#ffffff;--crit:#d33a2c;--major:#d97706;--minor:#a3860b;--info:#7a828c;--ok:#1d9a55;
  --mono:ui-monospace,"Cascadia Mono","SFMono-Regular",Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#111315;--panel:#181b1e;--panel2:#202428;--ink:#e9ece8;--mute:#9aa1a9;--line:#2b3035;
  --acc:#2cc4a8;--acc-ink:#06201b;--crit:#f06a5c;--major:#f0a33a;--minor:#d7bb3e;--info:#8b939c;--ok:#4cc982}}
:root[data-theme="dark"]{
  --bg:#111315;--panel:#181b1e;--panel2:#202428;--ink:#e9ece8;--mute:#9aa1a9;--line:#2b3035;
  --acc:#2cc4a8;--acc-ink:#06201b;--crit:#f06a5c;--major:#f0a33a;--minor:#d7bb3e;--info:#8b939c;--ok:#4cc982}
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--panel)}
.logo{font:700 18px/1 var(--mono);color:var(--ink);letter-spacing:-.02em}
.logo b{color:var(--acc)}
.top nav{display:flex;gap:16px;flex:1}
.top .who{color:var(--mute);font-size:13px}
.icon-btn{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:6px 10px;cursor:pointer;font:inherit}
.icon-btn:hover{border-color:var(--acc)}
.wrap{max-width:1280px;margin:0 auto;padding:24px 24px 80px}
.narrow{max-width:420px;margin:8vh auto;padding:0 16px}
h1{font-size:24px;margin:0 0 6px}h2{font-size:17px;margin:28px 0 10px}
.mute{color:var(--mute)}.small{font-size:13px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
label.f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mute)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:-1px}
textarea{width:100%;min-height:44px;resize:vertical}
.btn{font:inherit;font-weight:600;border:0;border-radius:8px;padding:9px 16px;background:var(--acc);color:var(--acc-ink);cursor:pointer;white-space:nowrap}
.btn:hover,.btn:focus-visible{filter:brightness(1.1)}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--acc)}
.btn.danger{background:none;color:var(--crit);border:1px solid var(--line)}
.btn.danger:hover{border-color:var(--crit)}
.btn:disabled{opacity:.5;cursor:default}
.err{color:var(--crit);margin:8px 0}.ok-msg{color:var(--ok);margin:8px 0}
.google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);font-weight:600}
.google:hover{border-color:var(--acc);text-decoration:none}
.or{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:13px;margin:16px 0}
.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--line)}
form.stack{display:flex;flex-direction:column;gap:12px}
/* домены */
.dlist{display:grid;gap:8px;margin-top:14px}
.ditem{display:grid;grid-template-columns:auto 56px 1fr auto auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.ditem:hover{border-color:var(--acc)}
.ditem .name{font-weight:600;font-size:16px}
.badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.st-done{color:var(--ok)}.st-failed{color:var(--crit)}.st-queued,.st-running{color:var(--major)}
.score{font:700 18px/1 var(--mono);width:56px;height:40px;display:grid;place-items:center;border-radius:8px;background:var(--panel2)}
.s-good{color:var(--ok)}.s-mid{color:var(--major)}.s-bad{color:var(--crit)}.s-none{color:var(--mute)}
/* аудит */
.grid2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:1000px){.grid2{grid-template-columns:1fr}}
.kpis{display:flex;gap:10px;flex-wrap:wrap}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:110px}
.kpi b{display:block;font:700 22px/1.2 var(--mono)}
.kpi span{font-size:12px;color:var(--mute)}
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);max-height:640px}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{position:sticky;top:0;background:var(--panel2);font-weight:600;color:var(--mute);cursor:pointer;user-select:none}
th:first-child,td:first-child{text-align:left}
td.path{max-width:320px;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono)}
tr.avg td{font-weight:700;background:var(--panel2)}
tr.pg{cursor:pointer}tr.pg:hover td{background:var(--panel2)}
.n{font-family:var(--mono)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.dot.y{background:var(--ok)}.dot.n{background:var(--crit)}
#graph{height:560px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.gtip{position:fixed;z-index:10;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:320px;display:none}
details.fix{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
details.fix summary{display:flex;gap:12px;align-items:center;padding:10px 14px;cursor:pointer;list-style:none}
details.fix summary::-webkit-details-marker{display:none}
details.fix summary .grow{flex:1;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
details.fix ul{margin:0;padding:0 14px 12px;list-style:none}
details.fix li{display:flex;gap:10px;padding:4px 0;font-size:14px;align-items:baseline}
.cat{font:600 11px/1.6 var(--mono);text-transform:uppercase;padding:0 6px;border-radius:4px;background:var(--panel2);color:var(--mute);min-width:74px;text-align:center}
.sev-critical{color:var(--crit)}.sev-major{color:var(--major)}.sev-minor{color:var(--minor)}.sev-info{color:var(--info)}
.progress{height:6px;background:var(--panel2);border-radius:99px;overflow:hidden;margin-top:10px}
.progress i{display:block;height:100%;background:var(--acc);width:0;transition:width .4s}
.pending{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--panel2);margin:10px 0}
.pending label{display:flex;gap:8px;font:13px var(--mono);padding:3px 0;word-break:break-all}
.hist{display:flex;gap:6px;flex-wrap:wrap}
.hist a{font:12px var(--mono);padding:3px 8px;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
.hist a.cur{border-color:var(--acc);color:var(--acc)}
.ps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
@media (max-width:640px){.wrap{padding:16px}.top{padding:10px 16px;flex-wrap:wrap}.ditem{grid-template-columns:auto 48px 1fr;}.ditem .acts{grid-column:1/-1}}
/* окно состояния аудита */
.status{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.status-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.status-head .n{font-size:20px;font-weight:700;color:var(--acc)}
.stages{list-style:none;margin:12px 0 6px;padding:0;display:grid;gap:6px;font-size:14px}
.stages li{display:flex;gap:10px;align-items:center;color:var(--mute)}
.stages .mark{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none;box-sizing:border-box}
.stages li.done{color:var(--ink)}
.stages li.done .mark{background:var(--ok);border-color:var(--ok)}
.stages li.cur{color:var(--ink);font-weight:600}
.stages li.cur .mark{border-color:var(--acc);border-top-color:transparent;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.stages li.cur .mark{animation:none;background:var(--acc)}}
/* BM25 */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:13px;padding:3px 9px;border-radius:99px;background:var(--panel2);border:1px solid var(--line);white-space:nowrap}
.chip i{font-style:normal;color:var(--mute);font-size:11px;margin-left:2px}
.cannibal{display:grid;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;max-height:420px;overflow:auto}
.cannibal>div{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding-bottom:6px;border-bottom:1px solid var(--line)}
.cannibal>div:last-child{border-bottom:0;padding-bottom:0}
.tip-h{margin-top:8px;font:600 11px/1.4 var(--mono);text-transform:uppercase;color:var(--mute)}
.tip-shared{margin-top:3px}
.gtip{max-width:380px}
/* рекомендации */
.fixes{margin-top:8px}
.fix-body{padding:0 14px 12px}
.fix-body p{margin:0 0 8px}
.fix-pages{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--mute)}
/* вкладки домена */
.tabs{display:flex;gap:4px;margin-top:14px;border-bottom:1px solid var(--line)}
.tabs a{padding:9px 16px;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600}
.tabs a:hover{color:var(--ink);text-decoration:none}
.tabs a.on{color:var(--acc);border-bottom-color:var(--acc)}
/* сравнение: лучше / хуже */
.d-up{color:var(--ok)}.d-down{color:var(--crit)}.d-same{color:var(--ink)}
.kpi b .d-up,.kpi b .d-down{font:inherit}
.kpi span .d-up,.kpi span .d-down{font-weight:700}
td.cell-up{background:color-mix(in srgb,var(--ok) 14%,transparent)}
td.cell-down{background:color-mix(in srgb,var(--crit) 14%,transparent)}
tr.cmp-new td{background:color-mix(in srgb,var(--ok) 8%,transparent)}
tr.cmp-gone td{background:color-mix(in srgb,var(--crit) 8%,transparent);color:var(--mute)}
tr.cmp-issues td{text-align:left;white-space:normal;font-size:13px;padding:4px 9px 10px 28px;border-bottom:1px solid var(--line)}
.tag-new,.tag-gone{font:600 11px/1.6 var(--mono);padding:0 6px;border-radius:4px}
.tag-new{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}
.tag-gone{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}
.cmp-list{display:grid;gap:4px}
/* ключи */
.kw-form{display:flex;gap:16px;flex-wrap:wrap}
.kw-form textarea{min-height:150px;font-family:var(--mono);font-size:13px}
.kw-help{flex:0 1 340px;line-height:1.6}
.positions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pos{font-size:13px;padding:3px 10px;border-radius:99px;border:1px solid currentColor}
.pos.yes{color:var(--ok)}.pos.no{color:var(--crit)}
tr.kw-target td{background:color-mix(in srgb,var(--acc) 10%,transparent)}
/* данные Chrome (CrUX) */
.crux{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.cx-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cx-row span{font:12px var(--mono);padding:2px 8px;border-radius:6px;border:1px solid currentColor}
.cx-FAST{color:var(--ok)}.cx-AVERAGE{color:var(--major)}.cx-SLOW{color:var(--crit)}
.kpi b b{display:inline;font:inherit}
.kpi .d-up,.kpi span.d-up,.kpi span .d-up{color:var(--ok)}
.kpi .d-down,.kpi span.d-down,.kpi span .d-down{color:var(--crit)}
.kpi b .mute{font-size:.7em}
/* мониторинг */
.top nav a + a{margin-left:4px}
:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s1:#3987e5;--s2:#d95926;--s3:#199e70}}
:root[data-theme="dark"]{--s1:#3987e5;--s2:#d95926;--s3:#199e70}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg a{padding:7px 12px;color:var(--ink);font-size:14px}
.seg a+a{border-left:1px solid var(--line)}
.seg a.on{background:var(--acc);color:var(--acc-ink)}
.seg a:hover{text-decoration:none;background:var(--panel2)}
.seg a.on:hover{background:var(--acc)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;margin-top:16px}
.chart-card{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.chart-card figcaption{font-size:13px;font-weight:600;margin-bottom:6px}
.chart svg{display:block;overflow:visible}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{fill:var(--mute);font:11px system-ui,sans-serif}
.chart .cross{stroke:var(--mute);stroke-width:1;stroke-dasharray:3 3}
.chart .dot{stroke:var(--panel);stroke-width:2}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--mute);margin-top:4px}
.legend i,.gtip .sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
table.mon td{white-space:nowrap}
table.mon td.small{white-space:normal}
.offer{font:600 11px/1.6 var(--mono);padding:0 6px;border-radius:4px;border:1px solid currentColor}
.offer-play{color:var(--s1)}.offer-register{color:var(--s2)}.offer-demo{color:var(--s3)}
.props{display:grid;gap:6px;max-height:420px;overflow:auto}
.props label{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tabs{overflow-x:auto;scrollbar-width:thin}.tabs a{white-space:nowrap;flex:none}
.tabs{overflow-y:hidden}
.accounts{display:grid;gap:6px;margin:10px 0}.acc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
/* подсказка скоринга */
.stip{max-width:440px;line-height:1.45}
.st-list{display:grid;gap:4px;margin-top:6px}
.st-row{display:grid;grid-template-columns:34px 1fr;gap:6px;align-items:baseline}
.st-pen{font:600 12px/1 var(--mono);text-align:right}
#tbl td[data-c]{cursor:help}
/* шкала обновления Search Console */
.sync{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.sync .bar{height:8px;margin-top:8px;border-radius:99px;background:var(--line);overflow:hidden}
.sync .bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--acc);transition:width .4s ease}
.sync.done .bar i{background:var(--ok)}
.sync.fail .bar i{background:var(--crit)}
.mon td.period{white-space:nowrap;text-align:right}
#sites th.srt{cursor:pointer;user-select:none;white-space:nowrap}
#sites th.srt:hover,#sites th.srt:focus-visible{color:var(--ink)}
#sites th.srt::after{content:"↕";margin-left:4px;opacity:.35;font-size:11px}
#sites th.srt.down::after{content:"↓";opacity:1}
#sites th.srt.up::after{content:"↑";opacity:1}
.mon td.h24{background:color-mix(in srgb,var(--acc) 6%,transparent)}
/* перевод имени домена не на латинице */
.en{color:var(--mute);font-weight:400}
h1 .en{font-size:.55em;margin-left:6px;vertical-align:middle}
.ditem .en{display:block}
