:root{--cloud-ink:#233d52;--cloud-accent:#176f69}
.archive-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;background:#fff;border:1px solid #dbe5e9;border-radius:12px;color:var(--cloud-ink)}
.archive-tools .sync-state{flex:1;min-width:150px;font-size:13px;line-height:1.5}
.archive-tools button,.archive-tools a{margin:0;padding:9px 14px;min-height:44px;border-radius:9px;border:1px solid #c5d6db;background:#f5faf9;color:var(--cloud-accent);font:600 14px/1.5 system-ui;text-decoration:none;cursor:pointer}
.archive-tools form{margin:0}.archive-tools .has-update{background:#fff5dc;color:#705000}.archive-tools .offline{color:#ae4936}
.archive-tools .nav-toggle{display:none}.archive-tools [hidden]{display:none!important}
.cloud-hidden{display:none!important}
.gv .gv-download,.device-download{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;padding:9px 14px;border-radius:8px;border:1px solid #9db7d3;background:#fff;color:#176f69;font:600 14px/1.5 system-ui;text-decoration:none;touch-action:manipulation}
.gv .gv-download[hidden]{display:none}
.lb .lbrefresh{margin:0;padding:9px 14px;min-height:44px;background:#fff;color:#176f69;border:1px solid #9db7d3;border-radius:8px;font:inherit;cursor:pointer}
.gv .gv-acts button,.lb-acts button,.lb-acts a{min-height:44px;touch-action:manipulation}
.login-page{margin:0;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;box-sizing:border-box;background:#eff4f5;color:#233d52;font:16px/1.65 system-ui,"Microsoft YaHei",sans-serif}
.login-card{width:min(100%,400px);box-sizing:border-box;padding:36px;border:1px solid #dce5e8;border-radius:22px;background:#fff;box-shadow:0 14px 48px #2444520b}
.login-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#176f69;color:#fff;font-size:26px;font-weight:700}
.login-card h1{font-size:28px;margin:10px 0}.login-card p{color:#627681}.login-card .eyebrow{font-size:12px;letter-spacing:2px;margin-top:24px}.login-card label{display:block;margin-top:26px;font-size:14px;font-weight:600}
.login-card input{box-sizing:border-box;width:100%;border:1px solid #c2d0d6;border-radius:9px;padding:12px;margin:8px 0 16px;font-size:16px}
.login-card button{width:100%;border:0;border-radius:9px;padding:13px;background:#176f69;color:white;font-size:16px;cursor:pointer}.login-card small{color:#7b8e98}.login-card [role=alert]{color:#b24732;font-size:14px}
@media(pointer:coarse){button,.btn-link,summary,.tabs a{min-height:44px}input,select,textarea{font-size:16px!important}.gv-stage{padding:12px 48px}.gv .gv-nav{width:40px;height:64px}.gv .gv-prev{left:4px}.gv .gv-next{right:4px}}
@media(max-width:1024px){.app{grid-template-columns:1fr}.side{display:none;position:static;height:auto;max-height:45vh;overflow:auto;padding:18px}.app.nav-open>.side{display:block}.archive-tools .nav-toggle{display:inline-block}.main{padding:18px 18px 32px;min-width:0}.archive-tools{position:sticky;top:0;z-index:20}.card{padding:16px}.cu-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.lb-acts{flex-wrap:wrap}.lb-inner{max-height:96dvh;overflow:auto}.gv-bar{padding-bottom:max(12px,env(safe-area-inset-bottom))}.gv-text{min-width:180px}.gv-help{display:none}}
@media(max-width:540px){.main{padding:10px}.archive-tools{gap:6px;padding:10px}.archive-tools .sync-state{flex-basis:100%;order:5}.archive-tools button,.archive-tools a{padding:8px 10px;font-size:13px}.cu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cu-view img{height:160px}.cu-filter label,.cu-import-form label{min-width:0;flex:1 1 100%}.cu-target-name,.cu-source-text{min-width:0}.cu-bar{position:static}.gv-acts{gap:5px}.gv .gv-acts button{padding:8px;font-size:13px}}
