*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,"Microsoft YaHei",sans-serif;
background:#f5f6f8;color:#1c2024}header{display:flex;justify-content:space-between;align-items:center;
padding:14px 22px;background:#1f2937;color:#fff}header h1{margin:0;font-size:17px}
header p{margin:2px 0 0;font-size:12px;opacity:.72}main{max-width:1100px;margin:0 auto;padding:18px}
section{background:#fff;border:1px solid #e3e6ea;border-radius:8px;padding:16px;margin-bottom:16px}
h2{margin:0 0 12px;font-size:15px}.section-head{display:flex;justify-content:space-between;align-items:center}
label{display:block;margin-bottom:10px;font-size:13px;color:#495057}
input,select,textarea{width:100%;margin-top:4px;padding:7px 9px;border:1px solid #ced4da;
border-radius:5px;font:inherit}textarea{min-height:64px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 14px}
.form-grid .wide{grid-column:1/-1}button{padding:7px 13px;border:1px solid #ced4da;border-radius:5px;
background:#fff;cursor:pointer;font:inherit}button.primary{background:#2563eb;border-color:#2563eb;
color:#fff}button.danger{color:#b42318;border-color:#f3b6b0}button:disabled{opacity:.55;cursor:default}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:8px 9px;text-align:left;
border-bottom:1px solid #edf0f2}th{background:#f8f9fa;font-weight:600}
.table-wrap{overflow-x:auto}.muted{color:#6c757d;font-size:12px}
#message{min-height:20px;color:#b42318}.state{font-weight:600}.state-published{color:#127a3d}
.state-draft{color:#8a6d3b}.state-revoked{color:#b42318}ul{margin:0;padding-left:18px;font-size:13px}
