:root{--navy:#0b1f3a;--accent:#1e6fd9;--accent-soft:#e8f1fd;--bg:#f5f7fb;--card:#fff;--text:#1b2430;--muted:#6b7688;--line:#e6eaf0;--up:#138a4b;--down:#c0392b;--warn:#a96b00}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;font-size:15px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
header.top{background:var(--navy);color:#fff}
header.top .wrap{display:flex;align-items:center;gap:22px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:19px;letter-spacing:.3px}
.brand:hover{text-decoration:none}
.brand img{width:30px;height:30px}
nav.main{display:flex;gap:18px;flex:1;flex-wrap:wrap}
nav.main a{color:#c9d6ea;font-size:14px}
nav.main a.on,nav.main a:hover{color:#fff;text-decoration:none}
.lang{color:#c9d6ea;font-size:13px;border:1px solid #33496b;border-radius:999px;padding:3px 12px}
.lang:hover{color:#fff;text-decoration:none;border-color:#5f7aa3}
.hero{padding:30px 0 10px}
.hero h1{margin:0 0 6px;font-size:26px;line-height:1.3}
.hero p{margin:0;color:var(--muted)}
.meta{color:var(--muted);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin:16px 0}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 4px}
.filters select,.filters button,.filters input{font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}
.filters button{background:var(--accent);border-color:var(--accent);color:#fff;cursor:pointer}
table.rank{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.rank th,table.rank td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.rank th{font-size:12px;color:var(--muted);font-weight:600;background:#fafbfd;white-space:nowrap}
table.rank tr:last-child td{border-bottom:none}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.pos{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-weight:700}
.pos.top1{background:#fff3cd;color:#8a5a00}.pos.top2{background:#eef1f5;color:#4b5563}.pos.top3{background:#fbe7dc;color:#9a4b1c}
.site-name{font-weight:600;color:var(--text)}
.site-domain{display:block;color:var(--muted);font-size:12px}
.bar{position:relative;height:8px;border-radius:99px;background:#edf1f6;min-width:90px;margin-top:4px}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#5fb3ff,var(--accent))}
.score{font-weight:700}
.chg{font-size:12px;font-weight:600}.chg.up{color:var(--up)}.chg.down{color:var(--down)}.chg.same{color:var(--muted)}.chg.new{color:var(--accent)}
.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:99px;background:#fff4e0;color:var(--warn);margin-left:6px;vertical-align:middle}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kpi{background:#fafbfd;border:1px solid var(--line);border-radius:10px;padding:12px}
.kpi b{display:block;font-size:24px}
.kpi span{color:var(--muted);font-size:12px}
dl.metrics{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0}
dl.metrics dt{color:var(--muted)}dl.metrics dd{margin:0}
.prose h2{font-size:18px;margin:22px 0 8px}.prose p,.prose li{color:#2c3645}
footer.bottom{margin:40px 0 0;padding:22px 0 34px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.empty{padding:30px;text-align:center;color:var(--muted)}
@media (max-width:720px){.hide-sm{display:none}.grid2,.kpis{grid-template-columns:1fr}.hero h1{font-size:22px}nav.main{order:3;width:100%;gap:14px}header.top .wrap{padding-top:8px;padding-bottom:8px}}
.admin table{width:100%;border-collapse:collapse;font-size:13px}.admin th,.admin td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left}
.admin input[type=text],.admin input[type=number],.admin input[type=password],.admin select,.admin textarea{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px;width:100%}
.admin label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}
.btn{display:inline-block;font:inherit;padding:7px 14px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}
.btn.ghost{background:#fff;color:var(--accent)}.btn.warn{background:#fff;border-color:var(--down);color:var(--down)}
.flash{padding:10px 12px;border-radius:8px;background:#e9f8ef;color:#1e7d44;margin:12px 0}.flash.err{background:#fdecec;color:#c0392b}
