:root{--bg:#f6f7fb;--surface:#fff;--text:#1f2430;--muted:#5b6577;--line:#dce1ea;--brand:#1e56d8;--brand-dark:#1846af;--error-bg:#ffeceb;--error-text:#b42318;--ok-bg:#e8f7ef;--ok-text:#027a48;--radius:12px}*{box-sizing:border-box}html,body{color:var(--text);background:radial-gradient(circle at 100% 0,#eef3ff 0%,#f6f7fb 45%,#f9fbff 100%);margin:0;padding:0;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}label{gap:6px;font-size:14px;display:grid}input,textarea,button{font:inherit}input,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:10px 12px}textarea{resize:vertical}button{cursor:pointer;border:0;border-radius:10px;padding:10px 14px}.button{background:var(--brand);color:#fff}.button:hover{background:var(--brand-dark)}.button.ghost{border:1px solid var(--line);color:var(--text);background:0 0}.page-container{max-width:1120px;margin:0 auto;padding:24px 16px 40px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#fcfdff;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;max-width:1120px;min-height:64px;margin:0 auto;padding:0 16px;display:flex}.brand{color:var(--text);font-size:18px;font-weight:700}.nav-group{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 10px 35px #142e6d0f}.card.inset{box-shadow:none;background:#f8faff}.stack-sm{gap:12px;display:grid}.stack-lg{gap:20px;display:grid}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px}th{background:#f8faff}.pager{justify-content:space-between;align-items:center;gap:8px;display:flex}.inline-form{align-items:center;gap:10px;display:flex}.inline-form input{max-width:420px}.muted{color:var(--muted);font-size:14px}.error,.success{border-radius:10px;padding:10px 12px;font-size:14px}.error{background:var(--error-bg);color:var(--error-text)}.success{background:var(--ok-bg);color:var(--ok-text)}@media (max-width:900px){.two-col{grid-template-columns:1fr}.nav-group{gap:10px;font-size:14px}.topbar-inner{align-items:flex-start;padding:10px 16px}}
