*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Roboto,Arial,sans-serif;background:#eef2f8;color:#0f1c33;font-size:14px;-webkit-font-smoothing:antialiased}
/* 登录 */
.login-mask{position:fixed;inset:0;background:
  radial-gradient(800px 500px at 50% 25%,rgba(107,143,199,.18),transparent),
  linear-gradient(180deg,#f5f8fc,#eef2f8);display:grid;place-items:center;z-index:100}
.login-box{background:#fff;border:1px solid rgba(20,40,80,.08);border-radius:18px;padding:38px 34px;width:340px;text-align:center;box-shadow:0 20px 60px rgba(20,40,80,.12)}
.login-logo{width:54px;height:54px;border-radius:14px;margin:0 auto 16px;background:linear-gradient(135deg,#3e6299,#5a7fb0);color:#fff;display:grid;place-items:center;font-size:26px;font-weight:900;box-shadow:0 8px 20px rgba(42,82,144,.3)}
.login-box h2{font-size:20px;margin-bottom:6px;color:#0f1c33}
.login-box p{color:#45566f;margin-bottom:18px;font-size:13px}
.login-box input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(20,40,80,.14);background:#fbfcfe;color:#0f1c33;font-size:15px;margin-bottom:14px}
.login-box input:focus{outline:none;border-color:rgba(107,143,199,.5);background:#fff}
.btn-p{width:100%;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,#3e6299,#5a7fb0);color:#fff;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 10px 24px rgba(42,82,144,.25)}
.btn-p:hover{filter:brightness(1.08)}
.login-err{color:#d8554f;font-size:13px;min-height:18px;margin-top:8px}
.login-back{display:inline-block;margin-top:14px;color:#45566f;font-size:13px}
.login-back:hover{color:#3e6299}

/* 布局 */
.admin{display:flex;min-height:100vh}
.sidebar{width:232px;background:linear-gradient(180deg,#ffffff,#f5f8fc);border-right:1px solid rgba(20,40,80,.08);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side-brand{padding:18px 18px;font-weight:800;font-size:16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(20,40,80,.08);color:#0f1c33}
.bm{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#3e6299,#5a7fb0);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 4px 10px rgba(42,82,144,.25)}
.side-nav{flex:1;overflow:auto;padding:12px 10px}
.side-nav button{display:block;width:100%;text-align:left;padding:11px 14px;border:none;background:none;color:#45566f;border-radius:10px;font-size:14px;cursor:pointer;margin-bottom:4px}
.side-nav button:hover{background:rgba(107,143,199,.08);color:#0f1c33}
.side-nav button.active{background:linear-gradient(135deg,rgba(62,98,153,.16),rgba(90,127,176,.10));color:#0f1c33;font-weight:700;border:1px solid rgba(107,143,199,.18)}
.side-foot{padding:14px 12px;border-top:1px solid rgba(20,40,80,.08);display:grid;gap:8px}
.btn-ghost{background:#fff;border:1px solid rgba(20,40,80,.14);color:#45566f;padding:9px;border-radius:9px;cursor:pointer;font-size:13px}
.btn-ghost:hover{background:rgba(107,143,199,.08);color:#0f1c33}
.btn-link{color:#45566f;text-align:center;font-size:13px;text-decoration:none}
.btn-link:hover{color:#3e6299}

.main{flex:1;display:flex;flex-direction:column;min-width:0;background:#eef2f8}
.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:16px 26px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(20,40,80,.08)}
.topbar h1{font-size:18px;color:#0f1c33}
.top-actions{display:flex;align-items:center;gap:14px}
.save-state{font-size:13px;color:#45566f}
.save-state.ok{color:#2f9e6b}
.save-state.err{color:#d8554f}
.panels{padding:24px 26px 60px;max-width:920px}

/* 表单 */
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;color:#45566f;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:10px 12px;border-radius:9px;border:1px solid rgba(20,40,80,.14);background:#fff;color:#0f1c33;font-size:14px;font-family:inherit}
.field textarea{resize:vertical;min-height:70px}
.field input:focus,.field textarea:focus{outline:none;border-color:rgba(107,143,199,.5)}
.panel-hint{background:rgba(107,143,199,.10);border:1px solid rgba(107,143,199,.22);color:#3e6299;padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:20px}
.group-title{font-size:15px;font-weight:700;color:#3e6299;margin:6px 0 16px;padding-bottom:8px;border-bottom:1px solid rgba(20,40,80,.08)}

/* 列表编辑器 */
.list-item{border:1px solid rgba(20,40,80,.10);border-radius:12px;padding:16px;margin-bottom:14px;background:#fff;box-shadow:0 4px 14px rgba(20,40,80,.05)}
.list-item .li-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.list-item .li-tag{font-size:12px;color:#45566f}
.li-remove{background:rgba(216,85,79,.10);border:1px solid rgba(216,85,79,.28);color:#d8554f;padding:5px 12px;border-radius:8px;cursor:pointer;font-size:12px}
.li-remove:hover{background:rgba(216,85,79,.18)}
.li-grid{display:grid;gap:10px}
.li-two{grid-template-columns:1fr 1fr}
.add-btn{width:100%;padding:11px;border:1px dashed rgba(107,143,199,.45);background:rgba(107,143,199,.05);color:#3e6299;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600}
.add-btn:hover{background:rgba(107,143,199,.12)}

/* 安全 */
.pwd-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

@media(max-width:760px){
  .sidebar{width:64px}
  .side-brand span:last-child,.side-nav button,.side-foot *{font-size:0}
  .side-brand{justify-content:center}
  .li-two,.pwd-row{grid-template-columns:1fr}
}