
:root{--bg:#f4f2ef;--card:#fff;--text:#222;--muted:#888;--line:#eee;--soft:#f0ece7;--accent:#e8664f;--hero:#fff7f4;--ok:#2e8b57;--okbg:#eaf6ee;--warn:#c77700;--warnbg:#fff4e0;--bad:#c0392b;--badbg:#fdecea}
@media (prefers-color-scheme:dark){:root{--bg:#141414;--card:#1f1f1f;--text:#eee;--muted:#999;--line:#2c2c2c;--soft:#2b2b2b;--hero:#2a1f1c;--ok:#5cc489;--okbg:#18301f;--warn:#e0a040;--warnbg:#33270f;--bad:#ef7b6e;--badbg:#3a1c19}}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;-webkit-text-size-adjust:100%}
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.top b{font-size:17px}
.wrap{padding:12px 14px 40px;max-width:640px;margin:0 auto}
.card{background:var(--card);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.hero{background:var(--hero)}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.muted{color:var(--muted);font-size:13px}.nowrap{white-space:nowrap}
input{accent-color:var(--accent)}.center{text-align:center}.warn{color:var(--warn)}
.btn{display:inline-block;border:0;border-radius:10px;padding:9px 14px;font-size:15px;background:var(--soft);color:var(--text);text-decoration:none;cursor:pointer;font-family:inherit;white-space:nowrap}
.btn.p{background:var(--accent);color:#fff}.btn:disabled{opacity:.45;cursor:default}
.link{border:0;background:none;color:var(--muted);font-size:15px;cursor:pointer;font-family:inherit}
.tag{font-family:ui-monospace,Menlo,monospace;font-size:14px}
.pill{display:inline-block;border-radius:99px;padding:2px 9px;font-size:12px;background:var(--okbg);color:var(--ok);white-space:nowrap}
.pill.old{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}
h3{margin:16px 2px 8px;font-size:14px;color:var(--muted);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}
ul.changes{margin:8px 0 10px;padding-left:18px;font-size:14px}ul.changes li{margin:2px 0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.chip{display:flex;align-items:center;gap:4px;border-radius:10px;padding:7px 10px;background:var(--soft);font-size:14px;cursor:pointer}
.chip input{margin:0}
.sitev{margin-top:10px}
.deploy{font-size:14px;padding:6px 0;border-top:1px solid var(--line)}.deploy:first-child{border-top:0}
.deploy a{color:inherit;text-decoration:none}
.panel{position:fixed;inset:0;background:var(--bg);z-index:5;display:flex;flex-direction:column}
.panel .top{position:static}
.panel .list{flex:1;overflow:auto;padding:12px 14px}
.opt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.opt input{margin-right:8px}.opt.locked{color:var(--muted);cursor:default}
.panel .foot{padding:12px 14px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line)}
.panel .foot .btn{width:100%}
.back{border:0;background:none;color:var(--accent);font-size:16px;cursor:pointer;padding:0;font-family:inherit}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#333;color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;z-index:9;max-width:90vw}
.login{text-align:center;padding:28px 14px}
