:root{--blue:#165099;--gold:#E9AC16;--bg:#f5f6f8;--line:#e3e6ea;}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,"微软雅黑",Segoe UI,Roboto,sans-serif;background:var(--bg);color:#1f2329;line-height:1.6}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line)}
.brand{font-weight:700;color:var(--blue)}
.topbar nav{display:flex;gap:16px;align-items:center}
.topbar a{color:var(--blue);text-decoration:none}
.user{color:#888;font-size:13px}
main{padding:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;max-width:1080px;margin:0 auto}
.center{text-align:center}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
h2{margin-bottom:14px;color:#1f2329}
h3{margin:10px 0;font-size:15px;color:#555}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:760px){.grid{grid-template-columns:1fr}}
label{display:block;margin:10px 0;font-size:13px;color:#555}
input,select,textarea{width:100%;padding:8px 10px;margin-top:4px;border:1px solid var(--line);border-radius:6px;font-size:14px;font-family:inherit}
textarea{min-height:64px}
button,.btn{padding:8px 16px;border:0;border-radius:6px;background:var(--blue);color:#fff;cursor:pointer;font-size:14px;text-decoration:none;display:inline-block}
button:hover{opacity:.9}
button.danger{background:#d4380d}
button.primary{background:var(--gold)}
.err{color:#d4380d;margin:8px 0}
.tip{color:#888;font-size:13px;margin-top:12px}
table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left}
thead th{background:#fafbfc}
.badge{padding:2px 8px;border-radius:10px;font-size:12px;background:#eee;color:#555}
.badge.published{background:#e6f4ea;color:#1e7e34}
.badge.draft{background:#fff4e5;color:#b26a00}
.badge.revoked{background:#fde7e7;color:#d4380d}
.badge.expired{background:#eceff1;color:#607d8b}
.locked{list-style:none}
.locked li{padding:6px 0;border-bottom:1px dashed var(--line);font-size:14px}
code{background:#f3f4f6;padding:1px 6px;border-radius:4px}
.verify-icon{width:64px;height:64px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff}
.verify-icon.valid{background:#1e7e34}
.verify-icon.invalid,.verify-icon.revoked,.verify-icon.expired{background:#d4380d}
.verify-icon.not_found{background:#b26a00}
.verify-info{margin:16px 0}
.toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 16px;font-size:14px;box-shadow:0 6px 24px rgba(0,0,0,.08);z-index:99;max-width:80%}
.toast.ok{border-color:#1e7e34;color:#1e7e34}
.toast.err{border-color:#d4380d;color:#d4380d}
.toast.hidden{display:none}
button:disabled{opacity:.6;cursor:not-allowed}
