/* ===== v0.9 路由 / 刷新 / 移动端顶部统一 ===== */
html,body{background:var(--bg);min-height:100%;}
body{-webkit-tap-highlight-color:transparent;}
.refresh-btn{display:inline-flex;align-items:center;gap:6px;color:var(--text);background:#fff;border:1px solid var(--line);}
.refresh-btn:active,.menu-btn:active{transform:scale(.97)}
.refresh-btn.spinning{pointer-events:none;opacity:.7}
.refresh-btn.spinning{animation:v09pulse .7s ease-in-out infinite alternate}
@keyframes v09pulse{from{opacity:.45}to{opacity:1}}
.menu-btn{color:var(--text)!important;-webkit-appearance:none;appearance:none;outline:none;box-shadow:none;}
.menu-btn:focus,.menu-btn:focus-visible{outline:2px solid #c9ced7;outline-offset:2px;}
.topbar{position:relative;}
.top-actions button{white-space:nowrap}
.route-error{background:#fff;border:1px solid #f0b8bb;border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.route-error h3{margin:0 0 8px}.route-error p{color:var(--muted);margin:0 0 12px}
@media(max-width:980px){
 html{background:var(--bg)}
 body{background:var(--bg);min-height:100vh;min-height:100dvh;}
 .main{padding-top:calc(18px + env(safe-area-inset-top));}
 .sidebar{padding-top:calc(20px + env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom));}
 .topbar{margin-bottom:18px;}
 .topbar-left{width:100%;align-items:flex-start;}
 .menu-btn{background:#fff;color:#17191f!important;border-color:#dde1e7;font-size:0;flex:0 0 46px;height:46px;}
 .menu-btn::after{content:'☰';font-size:21px;line-height:1;color:#17191f;}
 .top-actions{width:100%;display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center;}
 .top-actions .sync-pill{order:1;justify-self:start;max-width:none;}
 .top-actions .refresh-btn{order:2;justify-self:start;min-width:44px;padding:10px 12px;}
 .top-actions .primary-btn{order:3;justify-self:stretch;text-align:center;}
 .top-actions .lang-btn{order:4;justify-self:end;}
 .refresh-label{display:none;}
 .sync-pill,.lang-btn,.refresh-btn{background:rgba(255,255,255,.96);color:#17191f;border-color:#dde1e7;box-shadow:0 5px 18px rgba(31,37,50,.04);}
 .primary-btn{background:#17191f;color:#fff;}
 .topbar h1{color:#17191f;}
 .eyebrow{color:#858c99;}
}
@media(max-width:560px){
 .main{padding-left:12px;padding-right:12px;}
 .top-actions{grid-template-columns:auto auto 1fr auto;}
 .top-actions .primary-btn{padding-left:10px;padding-right:10px;font-size:13px;}
 .lang-btn{padding-left:10px;padding-right:10px;font-size:13px;}
 .sync-pill{font-size:11px;padding-left:10px;padding-right:10px;}
 .refresh-btn{font-size:17px!important;}
}
