:root{--bg:#0b1020;--card:#131a33;--line:#2b3666;--text:#eaf0ff;--muted:#9fb0e6;--btn:#4d6bff}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC",sans-serif;background:var(--bg);color:var(--text)}
.wrap{max-width:1100px;margin:24px auto;padding:16px}
.topnav{position:sticky;top:0;z-index:20;background:#0c1330;border-bottom:1px solid #223060}
.topnav .inner{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.brand{font-weight:700;color:#d9e4ff;text-decoration:none;margin-right:8px}
.navlink{color:#b8c8ff;text-decoration:none;padding:6px 10px;border-radius:8px}
.navlink.protected{display:none}
.navlink:hover,.navlink.active{background:#1d2a56;color:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
.muted{color:var(--muted)}
.small{font-size:12px;color:#9fb0e6}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:16px}
button,input{border-radius:10px;border:1px solid var(--line);padding:8px 10px;background:#0d1430;color:var(--text);min-height:38px}
input{min-width:140px}
button{background:var(--btn);border:none;cursor:pointer}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:99}
.modal{width:min(760px,92vw);background:#111937;border:1px solid #2b3666;border-radius:14px;padding:14px}
.modal .row{display:flex;gap:8px;flex-wrap:wrap}
