*{box-sizing:border-box}html,body{min-height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#25313c;background:#f4f6f8}button,input,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f2f7f6,#edf2f4 55%,#f7f8f7)}.login-panel{width:min(100%,420px);padding:40px;background:#fff;border:1px solid #e5eaed;border-radius:8px;box-shadow:0 12px 36px #20304012}.brand-mark{width:48px;height:48px;display:grid;place-items:center;background:#168b78;color:#fff;border-radius:8px;font-size:24px;font-weight:700}.brand-mark.small{width:36px;height:36px;font-size:18px}.eyebrow{margin:24px 0 8px;color:#168b78;font-size:11px;font-weight:700;letter-spacing:1px}.login-panel h1{font-size:26px;margin:0 0 8px}.muted{color:#7b8791;margin:6px 0}.login-panel form{display:flex;flex-direction:column;margin-top:28px}.login-panel label{font-size:13px;font-weight:600;margin:0 0 8px}.login-panel input{height:44px;border:1px solid #d9e0e4;border-radius:5px;padding:0 12px;margin:0 0 18px;outline:none}.login-panel input:focus,.search-box:focus-within{border-color:#168b78;box-shadow:0 0 0 3px #168b7815}.primary,.secondary{height:40px;border:0;border-radius:5px;padding:0 16px;font-weight:600}.primary{background:#168b78;color:#fff}.primary:hover{background:#117966}.full{width:100%;height:44px;margin-top:4px}.message{min-height:20px;margin:12px 0 0;color:#c4443d;font-size:13px}.security-note{margin:20px 0 0;padding-top:16px;border-top:1px solid #edf0f2;color:#87929a;font-size:12px}.app-shell{min-height:100vh}.app-shell[hidden],.page-section[hidden]{display:none}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e7ebee;z-index:5}.side-brand{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid #eef1f3}.side-brand b,.side-brand small{display:block}.side-brand b{font-size:14px}.side-brand small{font-size:11px;color:#929da5;margin-top:3px}.side-nav{padding:18px 12px;display:grid;gap:4px}.nav-item{height:42px;display:flex;align-items:center;gap:12px;text-align:left;padding:0 12px;border:0;border-radius:5px;background:transparent;color:#596671;font-size:14px}.nav-item:hover{background:#f5f8f7}.nav-item.active{color:#137d6d;background:#eaf5f2;font-weight:600}.nav-icon{width:18px;text-align:center;font-size:17px}.sidebar-bottom{margin-top:auto;padding:16px;display:flex;align-items:center;gap:8px;border-top:1px solid #eef1f3;color:#75818a;font-size:12px}.status-dot{width:8px;height:8px;background:#21a67a;border-radius:50%}.text-button{margin-left:auto;color:#6b7780;border:0;background:none;font-size:12px}.workspace{margin-left:232px;min-height:100vh}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fff;border-bottom:1px solid #e7ebee}.breadcrumbs{color:#79858e;font-size:13px}.breadcrumbs span{padding:0 9px;color:#c2c9ce}.breadcrumbs b{color:#34414b;font-weight:600}.top-actions{display:flex;align-items:center;gap:12px}.system-label{font-size:12px;color:#7d8991}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e9f3f1;color:#168b78;font-size:13px;font-weight:700}.content{max-width:1320px;margin:auto;padding:30px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-heading .eyebrow{margin:0 0 7px}.page-heading h1{margin:0;font-size:24px;font-weight:650}.page-heading .muted{font-size:13px}.secondary{background:#fff;border:1px solid #dfe5e8;color:#53616b}.secondary:hover{background:#f7f9f9}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{background:#fff;border:1px solid #e6eaed;border-radius:6px;padding:18px 20px}.metric-label{color:#78858e;font-size:13px}.metric-value{font-size:28px;font-weight:650;margin:12px 0 8px;color:#25313c}.metric-foot{font-size:12px;color:#9aa4aa}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:30px 0 14px}.section-heading h2,.connection-panel h2{margin:0;font-size:16px}.section-heading .muted{font-size:12px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-link{min-height:80px;display:flex;align-items:center;text-align:left;gap:14px;padding:15px;background:#fff;border:1px solid #e6eaed;border-radius:6px;color:#293640}.quick-link:hover{border-color:#b7d9d2;background:#fcfefd}.quick-link b,.quick-link small{display:block}.quick-link b{font-size:14px}.quick-link small{margin-top:5px;color:#89949b;font-size:12px}.quick-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:6px;font-size:18px}.quick-icon.red{background:#fcefed;color:#c75047}.quick-icon.teal{background:#eaf5f2;color:#148674}.quick-icon.blue{background:#edf3f9;color:#4678a6}.quick-icon.amber{background:#fbf4e8;color:#b57d2f}.arrow{margin-left:auto;color:#94a0a7;font-size:22px}.connection-panel{margin-top:20px;padding:18px 20px;background:#fff;border:1px solid #e6eaed;border-radius:6px}.connection-head{display:flex;gap:13px}.connection-icon{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;background:#eef3f5;color:#6b7f8a;border-radius:50%;font-size:13px;font-weight:700}.connection-panel p{max-width:850px;margin:8px 0 0;color:#73808a;font-size:13px;line-height:1.7}.connection-detail{display:flex;align-items:center;gap:10px;margin:14px 0 0 35px;font-size:12px;color:#8b969d}.status-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:4px;font-size:11px;font-weight:600}.status-pill.pending{background:#fff4df;color:#a77219}.notice{display:none;padding:10px 13px;margin-bottom:16px;border-radius:5px;font-size:13px}.notice.show{display:block}.notice.error{background:#fff0ee;color:#b23c34}.notice.success{background:#eaf6f1;color:#16785e}.toolbar{display:flex;gap:10px;padding:14px;background:#fff;border:1px solid #e6eaed;border-radius:6px}.search-box{height:38px;max-width:340px;min-width:180px;flex:1;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #dfe5e8;border-radius:5px;color:#849098}.search-box input{width:100%;border:0;outline:0;background:transparent;font-size:13px}.toolbar select{height:38px;min-width:130px;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 10px;color:#52616b;font-size:13px}.empty-state{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:14px;background:#fff;border:1px solid #e6eaed;border-radius:6px;text-align:center;padding:24px}.empty-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#f1f5f6;color:#80919b;font-size:22px}.empty-state h2{margin:16px 0 6px;font-size:17px}.empty-state p{max-width:540px;margin:0 0 16px;color:#7d8991;font-size:13px;line-height:1.7}.icon-button{width:36px;height:36px;border:1px solid #e0e6e9;border-radius:5px;background:#fff;color:#596671}.menu-button{display:none}.login-panel .eyebrow{margin-top:20px}.table-wrap{margin-top:14px;background:#fff;border:1px solid #e6eaed;border-radius:6px;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px;min-width:860px}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #edf1f3}.data-table th{background:#f8faf9;color:#5f6d76;font-weight:600;white-space:nowrap}.data-table td{color:#34414b}.data-table tr:last-child td{border-bottom:0}.data-table .mono{font-variant-numeric:tabular-nums;color:#2c3a44}.tag{display:inline-block;padding:2px 9px;border-radius:4px;font-size:11px;font-weight:600}.tag.ok{background:#e6f5ef;color:#16785e}.tag.warn{background:#fdeeee;color:#b23c34}.tag.idle{background:#eef2f4;color:#5f6d76}.row-status{height:32px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b;font-size:12px;padding:0 8px}.switch{position:relative;display:inline-block;width:38px;height:21px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;cursor:pointer;inset:0;background:#d4dbe0;border-radius:21px;transition:.2s}.switch span:before{content:"";position:absolute;height:15px;width:15px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:#168b78}.switch input:checked+span:before{transform:translateX(17px)}.switch input:disabled+span{opacity:.5;cursor:not-allowed}.category-manager{margin-top:14px;background:#fff;border:1px solid #e6eaed;border-radius:6px;padding:16px}.category-add{display:flex;gap:10px}.category-add input{height:38px;flex:1;max-width:280px;border:1px solid #dfe5e8;border-radius:5px;padding:0 12px}.category-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.category-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;background:#f2f7f5;border:1px solid #d6e7e2;border-radius:16px;color:#137d6d;font-size:13px}.category-chip .del{width:16px;height:16px;display:grid;place-items:center;border:0;border-radius:50%;background:#cfdeda;color:#557;font-size:12px;line-height:1;cursor:pointer}.category-chip .del:hover{background:#e6a4a0;color:#fff}@media(max-width:900px){.sidebar{width:210px}.workspace{margin-left:210px}.content{padding:24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;width:250px;box-shadow:8px 0 24px #16242b12}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.topbar{height:56px;padding:0 14px;gap:10px;justify-content:flex-start}.menu-button{display:block;flex:0 0 auto}.breadcrumbs{flex:1}.top-actions{gap:8px}.system-label{display:none}.content{padding:20px 14px}.page-heading{align-items:flex-start}.metric-grid{gap:10px}.metric{padding:14px}.metric-value{font-size:24px}.quick-grid{grid-template-columns:1fr;gap:9px}.section-heading{margin-top:24px}.connection-panel{padding:15px}.connection-detail{margin-left:0;align-items:flex-start;flex-direction:column;gap:7px}.toolbar{flex-wrap:wrap;padding:10px}.search-box{flex-basis:100%;max-width:none}.toolbar select{flex:1}.empty-state{min-height:280px;padding:20px 16px}.login-panel{padding:30px 24px}}[hidden]{display:none!important}
.user-cell{display:flex;align-items:center;gap:10px}
.user-avatar{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;background:#eaf5f2;color:#137d6d;font-size:13px;font-weight:700}
.user-meta{display:flex;flex-direction:column;min-width:0}
.user-meta b{font-size:13px;font-weight:600;color:#25313c}
.user-meta small{font-size:11px;color:#93a0a8;margin-top:2px}
.dialog-mask{position:fixed;inset:0;background:#0f1c2380;display:grid;place-items:center;padding:20px;z-index:50}
.dialog{width:min(100%,520px);max-height:90vh;overflow:auto;background:#fff;border-radius:8px;box-shadow:0 20px 60px #16242b33}
.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #eef1f3}
.dialog-head h2{margin:0;font-size:16px}
.dialog-body{padding:18px 20px;display:grid;gap:14px}
.field{display:grid;gap:6px;font-size:13px;font-weight:600;color:#4a5762}
.field input{height:40px;border:1px solid #d9e0e4;border-radius:5px;padding:0 12px;font-weight:400;outline:none;background:#fff;color:#25313c}
.field input:focus{border-color:#168b78;box-shadow:0 0 0 3px #168b7815}
.perm-block{border:1px solid #e6eaed;border-radius:6px;padding:12px}
.perm-title{margin:0 0 10px;font-size:12px;color:#78858e;font-weight:400}
.perm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.check-line{display:flex;align-items:center;gap:8px;font-size:13px;color:#4a5762;font-weight:400}
.dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #eef1f3}
.list-actions{display:flex;justify-content:flex-end;margin:14px 0 0}
.text-button.danger{color:#b23c34}
@media(max-width:640px){.perm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 支付配置面板 */
.pay-config{margin-top:14px;padding:18px 20px;background:#fff;border:1px solid #e6eaed;border-radius:6px}
.pay-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.pay-config-head h2{margin:0;font-size:16px}
.pay-config-head .muted{margin:6px 0 0;font-size:12px;line-height:1.7;max-width:760px}
.pay-config-state{flex:none;padding:3px 10px;border-radius:4px;background:#eef2f4;color:#5f6d76;font-size:11px;font-weight:600}
.pay-config-state.on{background:#e6f5ef;color:#16785e}

/* 轮播管理面板 */
.banner-manager{margin-top:14px;padding:18px 20px;background:#fff;border:1px solid #e6eaed;border-radius:6px}
.banner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.banner-head h2{margin:0;font-size:16px}
.banner-head .muted{margin:6px 0 0;font-size:12px;line-height:1.7;max-width:760px}
.banner-count{flex:none;padding:3px 10px;border-radius:4px;background:#eef2f4;color:#5f6d76;font-size:11px;font-weight:600}
.banner-manager .check-line{margin:14px 0 0}
.banner-list{margin-top:12px;display:grid;gap:8px}
.banner-empty{margin:0;font-size:13px}
.banner-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #edf1f3;border-radius:6px;background:#fbfcfc}
.banner-index{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;background:#eaf5f2;color:#137d6d;font-size:12px;font-weight:700}
.banner-cell{display:flex;flex-direction:column;min-width:0;flex:1}
.banner-cell b{font-size:13px;font-weight:600;color:#25313c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.banner-cell small{font-size:11px;color:#93a0a8;margin-top:3px}
.banner-actions{display:flex;gap:6px;flex:none}
.banner-actions .text-button{margin-left:0;padding:4px 8px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b}
.banner-actions .text-button:hover:not(:disabled){border-color:#b7d9d2;color:#137d6d}
.banner-actions .text-button.danger{color:#b23c34}
.banner-actions .text-button:disabled{opacity:.45;cursor:not-allowed}
.banner-add{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #eef1f3;flex-wrap:wrap}
.banner-add select{height:38px;min-width:240px;max-width:420px;flex:1;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 10px;color:#52616b;font-size:13px}
@media(max-width:640px){.banner-add select{flex-basis:100%;max-width:none}.banner-row{flex-wrap:wrap}.banner-actions{width:100%;justify-content:flex-end}}
.pay-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.pay-config-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #eef1f3}
@media(max-width:640px){.pay-config-grid{grid-template-columns:1fr}.pay-config-foot{flex-direction:column;align-items:flex-start}}

/* 报读层次与专业面板 */
.enroll-manager{margin-top:14px;padding:18px 20px;background:#fff;border:1px solid #e6eaed;border-radius:6px}
.enroll-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.enroll-head h2{margin:0;font-size:16px}
.enroll-head .muted{margin:6px 0 0;font-size:12px;line-height:1.7;max-width:760px}
.enroll-count{flex:none;padding:3px 10px;border-radius:4px;background:#eef2f4;color:#5f6d76;font-size:11px;font-weight:600}
.enroll-manager .check-line{margin:14px 0 0}
.enroll-add{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.enroll-add input{height:38px;flex:1;min-width:220px;max-width:420px;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 10px;color:#25313c;font-size:13px}
.enroll-list{margin-top:14px;display:grid;gap:10px}
.enroll-empty{margin:0;font-size:13px}
.enroll-card{padding:12px 14px;border:1px solid #edf1f3;border-radius:6px;background:#fbfcfc}
.enroll-card-head{display:flex;align-items:center;gap:10px}
.enroll-index{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;background:#eaf5f2;color:#137d6d;font-size:12px;font-weight:700}
.enroll-name{flex:1;min-width:0;height:34px;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 10px;color:#25313c;font-size:13px;font-weight:600}
.enroll-actions{display:flex;gap:6px;flex:none}
.enroll-actions .text-button{margin-left:0;padding:4px 8px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b}
.enroll-actions .text-button:hover:not(:disabled){border-color:#b7d9d2;color:#137d6d}
.enroll-actions .text-button.danger{color:#b23c34}
.enroll-actions .text-button:disabled{opacity:.45;cursor:not-allowed}
.enroll-majors{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.major-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-radius:999px;background:#eef5f4;color:#137d6d;font-size:12px}
.major-chip .del{border:none;background:transparent;color:#6f8a85;font-size:14px;line-height:1;cursor:pointer;padding:0 2px}
.major-chip .del:hover{color:#b23c34}
.enroll-major-add{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.enroll-major-add input{height:34px;flex:1;min-width:200px;max-width:360px;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 10px;color:#25313c;font-size:13px}
.enroll-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #eef1f3}
.enroll-foot .message{margin:0}
@media(max-width:640px){.enroll-card-head{flex-wrap:wrap}.enroll-actions{width:100%;justify-content:flex-end}.enroll-add input,.enroll-major-add input{flex-basis:100%;max-width:none}.enroll-foot{flex-direction:column;align-items:flex-start}}

/* 独立页面里的管理面板（文章分类 / 轮播 / 报读设置） */
.manager-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.manager-hint{margin:10px 0 0;font-size:12px;line-height:1.7;color:#7b8791;max-width:820px}
.category-manager,.banner-manager,.enroll-manager{margin-top:14px}

/* 文章编辑弹窗：正文需要更宽的编辑区 */
.dialog-wide{width:min(100%,760px)}
.dialog-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dialog-row.check-row{grid-template-columns:1fr;gap:10px}
.field select,.field textarea{width:100%;border:1px solid #d9e0e4;border-radius:5px;padding:10px 12px;font-weight:400;color:#25313c;background:#fff;outline:none;font-family:inherit;font-size:13px}
.field select{height:40px;padding:0 12px}
.field textarea{min-height:200px;line-height:1.7;resize:vertical}
.field select:focus,.field textarea:focus{border-color:#168b78;box-shadow:0 0 0 3px #168b7815}
.dialog-note{margin:0;font-size:12px;line-height:1.7}
.top-actions .text-button{margin-right:4px}
@media(max-width:640px){.dialog-row{grid-template-columns:1fr}}

/* 文章列表操作列 */
.article-ops{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.article-ops .text-button{margin-left:0;padding:4px 8px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b}
.article-ops .text-button:hover:not(:disabled){border-color:#b7d9d2;color:#137d6d}
.article-ops .text-button.danger{color:#b23c34}
.article-ops .text-button:disabled{opacity:.45;cursor:not-allowed}

/* 报名 / 预约记录卡片：标签 + 值两列，手机上可直接长按选中复制 */
.record-list{display:grid;gap:12px;margin-top:14px}
.record-card{background:#fff;border:1px solid #e6eaed;border-radius:6px;overflow:hidden}
.record-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:#f8faf9;border-bottom:1px solid #edf1f3}
.record-title{display:flex;align-items:center;gap:10px;min-width:0}
.record-title b{font-size:15px;font-weight:650;color:#25313c;word-break:break-all}
.record-ops{display:flex;align-items:center;gap:8px}
.record-ops .text-button{margin-left:0;padding:5px 10px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b}
.record-ops .text-button:hover{background:#f4f8f7}
.record-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding:8px 16px 14px}
.kv-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border-bottom:1px dashed #f0f3f4}
.kv-row:last-child{border-bottom:0}
.kv-k{color:#7b8791;font-size:12px;line-height:1.7;white-space:nowrap}
.kv-v{color:#25313c;font-size:13px;line-height:1.7;word-break:break-all;white-space:pre-wrap;user-select:text;-webkit-user-select:text}
.kv-v.mono{font-variant-numeric:tabular-nums;letter-spacing:.3px}
@media(max-width:820px){
  .record-body{grid-template-columns:1fr;padding:6px 14px 12px}
  .record-head{padding:11px 14px}
  .kv-row{grid-template-columns:80px minmax(0,1fr)}
  .copy-record{min-width:56px}
}

/* 富文本编辑器（正文） */
.editor{border:1px solid #d9e0e4;border-radius:6px;background:#fff;overflow:hidden}
.editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid #edf1f3;background:#fafbfb}
.ed-btn{height:28px;padding:0 9px;border:1px solid transparent;border-radius:4px;background:transparent;color:#4c5a64;font-size:12px;line-height:1;font-weight:400}
.ed-btn:hover{background:#eef4f3;border-color:#d7e5e2}
.ed-btn.active{background:#168b78;border-color:#168b78;color:#fff}
.ed-btn:disabled{opacity:.5;cursor:not-allowed}
.ed-sep{width:1px;height:18px;margin:0 4px;background:#e3e9ec}
/* 文字颜色按钮：A + 下方彩色条，点开系统取色器 */
.ed-btn.ed-color{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0 8px;height:28px}
.ed-color .ed-a{font-size:13px;line-height:1;font-weight:700}
.ed-color .ed-swatch{display:block;width:16px;height:3px;border-radius:2px;background:linear-gradient(90deg,#c8102e,#f59e0b,#16a34a,#2563eb,#7c3aed)}
.editor-area{min-height:280px;max-height:52vh;overflow:auto;padding:14px 16px;font-size:14px;line-height:1.8;color:#25313c;font-weight:400;outline:none}
.editor-area:empty:before{content:attr(data-placeholder);color:#a4aeb5}
.editor-area h2{font-size:20px;margin:16px 0 8px;font-weight:650}
.editor-area h3{font-size:16px;margin:14px 0 6px;font-weight:650}
.editor-area p{margin:0 0 12px}
.editor-area blockquote{margin:10px 0;padding:8px 12px;border-left:3px solid #cfe3de;background:#f7faf9;color:#5c6b74}
.editor-area img{max-width:100%;height:auto;border-radius:4px}
.editor-area hr{border:0;border-top:1px solid #e6eaed;margin:16px 0}
.editor-source{width:100%;min-height:280px;max-height:52vh;padding:12px 14px;border:0;outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;color:#2b3a44;resize:vertical;font-weight:400}
.editor-hint{margin:0;font-size:12px;line-height:1.7;color:#8b969d;font-weight:400}

/* 封面上传 */
.cover-field{display:flex;gap:14px;align-items:flex-start}
.cover-thumb{width:132px;height:88px;flex:none;display:grid;place-items:center;border:1px dashed #d5dce0;border-radius:6px;background:#fafbfb;color:#9aa5ac;font-size:12px;overflow:hidden;font-weight:400}
.cover-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cover-side{flex:1;min-width:0;display:grid;gap:8px}
.cover-actions{display:flex;align-items:center;gap:10px}
.cover-actions .secondary{height:34px;padding:0 14px;font-size:13px;font-weight:500}
.cover-actions .text-button{margin-left:0;color:#b23c34;font-size:12px}
@media(max-width:640px){
  .cover-field{flex-direction:column}
  .cover-thumb{width:100%;height:120px}
}

/* 页面内容：用户协议 / 隐私保护指引 / 关于我们 */
.pages-manager{margin-top:14px}
.pages-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 16px}
.page-tab{padding:8px 18px;border:1px solid #dfe5e8;border-radius:999px;background:#fff;color:#52616b;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}
.page-tab:hover:not(.active){border-color:#b7d9d2;color:#137d6d;background:#f6fbfa}
.page-tab.active{background:#168b78;border-color:#168b78;color:#fff}
.pages-editor{display:grid;gap:14px}
.pages-editor .dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px}
.pages-visible-line{align-self:center;padding-bottom:4px;white-space:nowrap;font-size:13px}
.pages-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.pages-foot .message{flex:1;margin:0;min-width:140px}
.pages-count{font-size:12px;color:#7b8791}
@media(max-width:640px){
  .pages-editor .dialog-row{grid-template-columns:1fr}
  .pages-visible-line{padding-bottom:0}
  .pages-foot{justify-content:stretch}
  .pages-foot .primary{width:100%}
}

/* 轮播卡片：缩略图 + 标题 / 副标题 / 跳转 + 操作 */
.banner-card{display:grid;grid-template-columns:168px minmax(0,1fr);gap:14px;padding:12px;border:1px solid #edf1f3;border-radius:8px;background:#fbfcfc}
.banner-card.is-off{opacity:.55}
.banner-thumb{display:grid;place-items:center;width:168px;height:94px;border:1px dashed #d5dce0;border-radius:6px;background:#f4f7f8;color:#8d99a1;font-size:12px;line-height:1.5;text-align:center;cursor:pointer;overflow:hidden;transition:border-color .15s,color .15s}
.banner-thumb:hover{border-color:#9ecdc4;color:#137d6d}
.banner-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.banner-fields{display:grid;gap:6px;min-width:0}
.banner-field{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center}
.banner-field>span{font-size:12px;color:#7b8791;white-space:nowrap}
.banner-field input,.banner-field select{height:32px;width:100%;min-width:0;border:1px solid #dfe5e8;border-radius:4px;background:#fff;padding:0 9px;font-size:12.5px;color:#25313c;font-weight:400;outline:none}
.banner-field input:focus,.banner-field select:focus{border-color:#168b78;box-shadow:0 0 0 3px #168b7815}
.banner-ops{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px dashed #eef1f3}
.banner-ops .check-line{margin:0;font-size:12px}
.banner-ops .text-button{margin-left:0;padding:4px 8px;border:1px solid #dfe5e8;border-radius:4px;background:#fff;color:#52616b}
.banner-ops .text-button:hover:not(:disabled){border-color:#b7d9d2;color:#137d6d}
.banner-ops .text-button.danger{color:#b23c34}
.banner-ops .text-button:disabled{opacity:.45;cursor:not-allowed}
.banner-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px;flex-wrap:wrap}
.banner-foot .message{flex:1;margin:0;min-width:120px}
@media(max-width:860px){.banner-card{grid-template-columns:1fr}.banner-thumb{width:100%;height:150px}}
@media(max-width:640px){
  .banner-field{grid-template-columns:1fr;gap:3px}
  .banner-foot{justify-content:stretch}
  .banner-foot .primary{width:100%}
}
