:root{--blue:#2563eb;--blue-dark:#1d4ed8;--ink:#14213d;--muted:#64748b;--border:#e2e8f0;--page:#f5f7fb;--surface:#fff;--danger:#b91c1c}*{box-sizing:border-box}html{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:var(--ink)}body{margin:0;background:var(--page);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.03em;margin-bottom:8px}h2{font-size:17px;margin-bottom:10px}p{line-height:1.6}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;color:#7992c2;margin-bottom:10px}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:16px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:750;white-space:nowrap}.brand-mark{width:35px;height:35px;display:grid;place-items:center;background:var(--blue);border-radius:10px;color:#fff;font-size:11px;letter-spacing:-.03em}.top-actions{display:flex;align-items:center;gap:20px}.top-link,.text-button{color:#50617c;background:none;border:0}.top-link:hover,.text-button:hover{color:var(--blue)}.switch-label{color:var(--muted);font-size:12px}.switch-label select{max-width:180px;margin-left:7px;padding:8px 26px 8px 10px;border:1px solid var(--border);border-radius:8px;color:var(--ink);background:#fff}.username{font-weight:600}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 66px)}.sidebar{background:#fff;border-right:1px solid var(--border);padding:24px 14px}.sidebar-title{font-size:11px;font-weight:700;color:#9aa8bc;text-transform:uppercase;letter-spacing:.11em;padding:8px 13px;margin:7px 0}.side-link{display:flex;align-items:center;gap:10px;color:#52617a;padding:11px 13px;border-radius:9px;margin:2px 0}.side-link.active,.side-link:hover{background:#eef4ff;color:var(--blue);font-weight:650}.side-link span{font-size:17px;width:20px;text-align:center}.main{max-width:1500px;width:100%;padding:30px 38px 70px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:23px}.page-head p{color:var(--muted);margin-bottom:0}.card,.welcome-card,.module-card,.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 3px 15px rgba(27,55,103,.035)}.card{padding:23px;margin-bottom:20px}.welcome-card{padding:28px 30px;margin-bottom:20px;background:linear-gradient(112deg,#fff,#f0f6ff)}.welcome-card h2{font-size:21px}.welcome-card p{margin:0;color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:17px}.module-card{padding:23px;transition:transform .15s,box-shadow .15s}.module-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(27,55,103,.1)}.module-card p{color:var(--muted);min-height:48px}.module-card>span:last-child{color:var(--blue);font-weight:700}.module-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#eaf1ff;color:var(--blue);font-size:22px;margin-bottom:17px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:19px}.stat{padding:20px}.stat b{display:block;font-size:25px;margin-bottom:4px}.stat span{font-size:12px;color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.filter,.form-actions,.row-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter input{width:min(280px,100%)}input:not([type=checkbox]),select,textarea{background:#fff;border:1px solid #d8e0eb;border-radius:8px;padding:10px 12px;color:var(--ink);min-height:40px;max-width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:#82a7f8;box-shadow:0 0 0 3px #e8f0ff}textarea{width:100%;resize:vertical;line-height:1.6;min-height:260px}label{display:block;font-weight:600;color:#34445d;margin-bottom:17px}label input:not([type=checkbox]),label select,label textarea{display:block;width:100%;margin-top:7px;font-weight:400}.check{display:flex;align-items:center;gap:8px;font-weight:500}.check input{accent-color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:39px;border:1px solid #d9e2ef;border-radius:8px;background:#fff;padding:8px 15px;color:#33445e;font-weight:650;white-space:nowrap}.button:hover{background:#f2f6fc}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover{background:var(--blue-dark)}.button.full{width:100%}.center{text-align:center}.table-wrap{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;min-width:710px}th{text-align:left;font-size:11px;letter-spacing:.04em;color:#8a99af;background:#f8fafc;text-transform:uppercase}th,td{padding:13px 12px;border-bottom:1px solid #edf1f6;vertical-align:middle}td{color:#40516b}tr:last-child td{border-bottom:0}.table-title{font-weight:650;color:#20304d;display:block;max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-title:hover{color:var(--blue)}.row-sub{font-size:11px;color:#9aa8ba;margin-top:4px}.row-actions{white-space:nowrap}.row-actions a,.row-actions button{border:0;background:transparent;padding:0;color:var(--blue);font-size:12px}.row-actions form{margin:0}.empty-row{text-align:center;color:var(--muted);padding:35px}.badge{display:inline-block;border-radius:99px;background:#f1f5f9;color:#65758d;padding:5px 9px;font-size:11px;font-weight:700}.badge.published{background:#e9f8f0;color:#12804c}.editor-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.card-heading h2{margin:0}.preview-panel{min-width:0}.markdown{overflow-wrap:anywhere;line-height:1.7}.markdown pre,.read-only pre{background:#f4f7fa;padding:15px;overflow:auto;white-space:pre-wrap}.markdown a{color:var(--blue);text-decoration:underline}.notice{padding:13px 16px;border-radius:9px;margin-bottom:17px;border:1px solid}.notice.success{background:#ebfbf2;color:#12613c;border-color:#b8ead0}.notice.error{background:#fff1f1;color:#a82222;border-color:#ffcaca}.notice.warning{background:#fff8e7;color:#74510b;border-color:#f5df9e}.notice code{display:block;font-size:16px;padding:9px 0;overflow-wrap:anywhere}.danger{color:var(--danger)!important}.auth-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,#e8f0ff,#f5f7fb 45%)}.auth-card{width:min(100%,440px);padding:34px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 50px rgba(27,55,103,.08)}.auth-brand{margin-bottom:32px}.auth-card h1{font-size:24px}.auth-card label{margin-top:22px}.auth-foot{border-top:1px solid var(--border);padding-top:17px;margin:25px 0 0;color:var(--muted);font-size:12px}.quiet-link{display:block;margin-top:16px;color:var(--muted);font-size:12px}.secret-box{font-family:monospace;font-size:19px;letter-spacing:.1em;background:#eef4ff;padding:16px;border-radius:9px;overflow-wrap:anywhere}.recovery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:20px 0}.recovery-grid code{background:#f1f5f9;padding:10px;border-radius:6px;text-align:center}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px 12px;padding:15px;background:#f8fafc;margin:10px 0 18px;border-radius:8px}.permission-grid label{margin:5px 0;font-size:12px;overflow-wrap:anywhere}details summary{cursor:pointer;color:var(--blue);font-weight:650;margin:12px 0}.admin-card{margin-top:16px}.empty{text-align:center;padding:55px 20px}.empty .module-icon{margin:0 auto 18px}.pagination{margin-top:16px}
@media(max-width:1000px){.shell{grid-template-columns:185px minmax(0,1fr)}.main{padding:24px}.topbar{padding:0 18px}.editor-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:10px 14px}.top-actions{gap:10px;flex-wrap:wrap}.username,.top-link{display:none}.switch-label{font-size:0}.switch-label select{font-size:12px;margin:0;max-width:160px}.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--border);padding:7px 12px}.sidebar-title{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:4px}.side-link{white-space:nowrap;padding:8px 10px;font-size:12px}.main{padding:21px 14px 45px}.module-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.filter{width:100%}.filter input{flex:1;min-width:130px}.card{padding:17px}.form-grid{grid-template-columns:1fr;gap:0}.page-head h1{font-size:22px}.stat{padding:15px}.stat b{font-size:21px}}
@media(max-width:350px){.brand{font-size:12px}.brand-mark{width:30px;height:30px}.switch-label select{max-width:122px}.stat-grid{gap:8px}.auth-card{padding:23px}.recovery-grid{grid-template-columns:1fr 1fr;font-size:12px}}
.switch-label{display:flex;align-items:center;gap:7px;margin:0;white-space:nowrap}.switch-label select{margin-left:0;flex:0 0 130px}.toolbar .filter{flex:1;min-width:0}.toolbar .filter input{width:280px;flex:0 1 280px}
@media(max-width:650px){.switch-label{gap:0}.toolbar .filter input{flex:1;min-width:130px}}
@media(max-width:350px){.topbar{gap:6px}.top-actions{gap:7px}}
.list-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;color:var(--muted);font-size:12px}.list-footer>div{display:flex;gap:8px}
.section-title{margin:26px 0 15px}.url-cell{max-width:400px;overflow-wrap:anywhere}.url-cell a{color:var(--blue);text-decoration:underline}.link-form{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:17px}.link-form label{margin:0}.link-form .button{margin-bottom:0}@media(max-width:650px){.link-form{grid-template-columns:1fr}}
.brand small{display:block;font-size:9px;letter-spacing:.12em;color:#8a99af;margin-top:3px}.sidebar-note{margin:40px 12px 0;padding-top:20px;border-top:1px solid var(--border);font-size:12px;color:#6b7b93}.sidebar-note p{font-size:10px;margin-top:10px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#16a34a;margin-right:5px}.distribution-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px}.distribution-hero h2{margin-top:18px}.distribution-hero .badge{letter-spacing:.1em;background:#e9f1ff;color:var(--blue);font-size:9px}.stat b{margin:10px 0}.accent{color:var(--blue);font-size:12px;font-weight:600}.plugin-row,.source-row{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid #edf1f6}.plugin-row>div{flex:1;min-width:0}.plugin-row p{color:var(--muted);font-size:12px;margin:6px 0 0;overflow-wrap:anywhere}.plugin-row .badge{flex-shrink:0}.plugin-symbol{background:#eef4ff;color:var(--blue);width:42px;height:42px;display:grid;place-items:center;font-size:24px;border-radius:10px;flex-shrink:0}.source-row{justify-content:space-between}.source-row p{margin:7px 0 0}.hint{font-size:12px;color:var(--muted);padding:16px;background:#f8fafc;border-radius:8px;margin:20px 0 0}.release-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}.release-steps b{display:block;font-size:20px;font-weight:500;color:#98b2df;margin-bottom:13px}.release-steps p{font-size:12px;color:var(--muted);margin:9px 0 0}.subnav,.breadcrumb{display:flex;gap:16px;margin:0 0 22px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.subnav a{padding:9px 13px;background:#fff;border:1px solid var(--border);border-radius:7px}.breadcrumb a{color:var(--blue)}.filter{align-items:end}.filter label{margin-bottom:0}.chart{display:flex;align-items:end;gap:6px;height:190px;border-bottom:1px solid var(--border);padding-top:16px}.chart-day{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:end;align-items:center;height:100%;gap:8px}.chart-bar{width:100%;max-width:36px;background:#789ef1;border-radius:4px 4px 0 0;min-height:2px}.chart-day small{font-size:9px;color:var(--muted)}.metric-note{font-size:11px;color:var(--muted);margin-top:9px}.version-card{scroll-margin-top:85px}.version-notes{background:#f8fafc;border-radius:8px;padding:15px;margin:15px 0}.version-notes pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12px;line-height:1.7}.pagination svg{width:18px;height:18px}.pagination nav>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.pagination nav>div+div{display:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #9dbafa;outline-offset:3px}.empty p{margin-bottom:0}.card-heading{gap:12px}.stat b{overflow-wrap:anywhere}
@media(max-width:800px){.distribution-hero{align-items:start;flex-direction:column}.release-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.sidebar-note{display:none}.sidebar nav{scrollbar-width:thin}.distribution-hero{padding:22px}.distribution-hero h2{line-height:1.6}.brand small{font-size:8px}.topbar{gap:10px}.top-actions{margin-left:auto}.stat b{font-size:23px}.chart{gap:3px}.chart-day small{font-size:8px}.plugin-row{flex-wrap:wrap}.plugin-row .badge{margin-left:auto}.card-heading{align-items:start}.release-steps{gap:22px 16px}.filter label{width:100%}.filter input,.filter select{width:100%}.filter .button{margin-top:6px}}
.icon-drop{border:2px dashed #bfcee6;border-radius:12px;padding:26px;text-align:center;margin:12px 0 18px;background:#f8fbff}.icon-drop.dragging{background:#eaf2ff}.icon-drop input{max-width:100%}.icon-drop span{display:block;color:#64748b;font-size:12px;margin-top:9px}#crop-area{margin:16px 0}#crop-canvas{max-width:100%;touch-action:none;cursor:grab;border-radius:10px;border:1px solid #d8e0eb}#icon-ready{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}#icon-ready img,.current-icon img{border-radius:12px;object-fit:cover;border:1px solid #d8e0eb}.current-icon{margin:16px 0}.markdown-preview{padding:16px;background:#f8fafc;min-height:80px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere}.markdown-preview p{margin:0 0 10px}.wizard-step{border-left:3px solid #c4d7fb;padding-left:18px;margin:20px 0}.form-help{font-size:12px;color:#64748b;margin:-8px 0 16px}.plugin-list-icon{width:42px;height:42px;object-fit:cover;border-radius:9px;margin-right:10px;vertical-align:middle}.release-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:14px 0}.release-source-grid label{background:#f8fafc;padding:13px;border-radius:9px;margin:0}.release-source-grid input{width:100%}

[hidden]{display:none!important}

/* 2026-11-12：显式声明浅色，阻止 Android Chrome 的自动深色化把后台反色（本控制台没有深色主题） */
:root{color-scheme:only light}
/* 2026-11-12：窄屏下徽标文字不要折行（「全部插件」「不出现」这类两字词被挤成两行很难看） */
.badge{white-space:nowrap}
/* 2026-11-12 晚（审查 L-16）：badge 补语义底色，别只有红字没红底 */
.badge.danger{background:#fee2e2;color:#b91c1c}.badge.warning{background:#fff8e7;color:#8a5b00}

/* 2026-11-12 晚：宿主屏蔽规则页的桌面端排布（移动端不受影响）
   为什么不做"左边单右边列表"：规则表有 6 列，flm.css 给 table 设了 min-width:710px，
   塞进半宽列必然横向滚动。所以桌面端保持单列，只把表单限宽、给两张表定死列宽。 */
@media(min-width:1180px){
  .hostrules-form{max-width:820px}
  .hostrules-main{margin-bottom:0}
}
@media(min-width:769px){
  .hostrules-rules table,.hostrules-preview table{min-width:0}
  .hostrules-rules th:nth-child(1),.hostrules-rules td:nth-child(1){width:15%}
  .hostrules-rules th:nth-child(2),.hostrules-rules td:nth-child(2){width:15%}
  .hostrules-rules th:nth-child(3),.hostrules-rules td:nth-child(3){width:17%}
  .hostrules-rules th:nth-child(4),.hostrules-rules td:nth-child(4){width:26%}
  .hostrules-rules th:nth-child(5),.hostrules-rules td:nth-child(5){width:11%}
  .hostrules-rules th:nth-child(6),.hostrules-rules td:nth-child(6){width:16%}
  .hostrules-preview th:nth-child(1),.hostrules-preview td:nth-child(1){width:19%}
  .hostrules-preview th:nth-child(2),.hostrules-preview td:nth-child(2){width:13%}
  .hostrules-preview th:nth-child(3),.hostrules-preview td:nth-child(3){width:42%}
  .hostrules-preview th:nth-child(4),.hostrules-preview td:nth-child(4){width:26%}
}
