/* 全国后台样式（与省份页面分离，避免互相影响） */
:root { --primary:#1a56db; --dark:#153f7b; --red:#c41230; --bg:#f2f3f7; --card:#fff;
        --border:#e2e5ec; --text:#1f2937; --text2:#5b6470; --text3:#9ca3af; --ok:#0f9d58; --warn:#e8a33d; }
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
       background:var(--bg); color:var(--text); min-height:100vh; }
a { text-decoration:none; color:inherit; }
.topbar { background:linear-gradient(135deg,#153d8f,#1a56db 55%,#1e40af); color:#fff; border-bottom:3px solid var(--red); }
.topbar-inner { max-width:1240px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.topbar .t1 { font-size:19px; font-weight:800; letter-spacing:1.5px; }
.topbar .t2 { font-size:11.5px; opacity:.85; margin-top:2px; }
.topbar .chip { display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700;
                background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.45); margin-left:10px; }
.topbar nav { display:flex; align-items:center; gap:6px; }
.topbar nav a { color:rgba(255,255,255,.9); font-size:13px; padding:6px 14px; border-radius:6px; }
.topbar nav a:hover, .topbar nav a.active { background:rgba(255,255,255,.16); color:#fff; }
.wrap { max-width:1240px; margin:0 auto; padding:24px; }
h1 { font-size:20px; font-weight:800; margin-bottom:6px; }
.muted { color:var(--text2); font-size:13px; }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:20px 0 24px; }
.kpi { background:var(--card); border:1px solid var(--border); border-radius:10px; padding:18px 20px; }
.kpi .label { font-size:12.5px; color:var(--text2); }
.kpi .value { font-size:28px; font-weight:800; margin-top:6px; }
.kpi .value.ok { color:var(--ok); } .kpi .value.warn { color:var(--warn); }
.panel { background:var(--card); border:1px solid var(--border); border-radius:10px; margin-bottom:20px; overflow:hidden; }
.panel > h2 { font-size:15px; font-weight:800; padding:14px 20px; border-bottom:1px solid var(--border); background:linear-gradient(180deg,#fbfcfe,#f5f7fb); }
.panel .body { padding:16px 20px; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:middle; }
th { font-size:12.5px; color:var(--text2); font-weight:700; background:#fafbfd; }
.province-block { padding:16px 20px; border-bottom:1px solid var(--border); }
.province-block:last-child { border-bottom:none; }
.province-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.province-head .name { font-size:16px; font-weight:800; }
.province-head .meta { font-size:12.5px; color:var(--text2); }
.module-row { display:grid; grid-template-columns:150px 1fr 190px; gap:14px; align-items:center; padding:7px 0; }
.bar { height:9px; border-radius:999px; background:#eef1f6; overflow:hidden; }
.bar > i { display:block; height:100%; background:linear-gradient(90deg,#1a56db,#4f8ef7); }
.module-row .detail { font-size:12.5px; color:var(--text2); }
.btn { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border); background:#fff; color:var(--text);
       padding:7px 14px; border-radius:7px; font-size:13px; cursor:pointer; }
.btn:hover { border-color:#bcd0f6; }
.btn.primary { background:var(--primary); border-color:var(--primary); color:#fff; }
.btn.danger { color:var(--red); border-color:#f0c8d1; }
.btn:disabled { opacity:.55; cursor:not-allowed; }
.toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
input, select, textarea { font-family:inherit; font-size:13px; padding:8px 10px; border:1px solid var(--border); border-radius:7px; background:#fff; color:var(--text); }
input:focus, select:focus { outline:2px solid #cfe0fb; border-color:#8fb6f0; }
.message { padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:14px; background:#eaf5ee; color:#166534; }
.message.error { background:#fdecef; color:#9f1239; }
.overlay { position:fixed; inset:0; background:rgba(15,23,42,.45); display:flex; align-items:center; justify-content:center; padding:20px; z-index:20; }
.dialog { background:#fff; border-radius:12px; width:min(720px,100%); max-height:90vh; overflow:auto; padding:22px; }
.dialog h2 { font-size:16px; margin-bottom:14px; }
.fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field { display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--text2); }
.field.wide { grid-column:1 / -1; }
.checks { display:flex; flex-wrap:wrap; gap:10px 18px; grid-column:1 / -1; }
.checks label { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--text); }
.actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.login-box { max-width:420px; margin:9vh auto; background:#fff; border:1px solid var(--border); border-radius:12px; padding:30px; }
.login-box h1 { font-size:22px; }
@media (max-width:900px) { .cards { grid-template-columns:1fr 1fr; } .module-row { grid-template-columns:110px 1fr; } .fields { grid-template-columns:1fr; } }

.topbar-inner{height:auto;min-height:64px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.topbar nav{flex-wrap:wrap}.topbar nav a{min-height:34px;border:1px solid rgba(255,255,255,.35);display:inline-flex;align-items:center}
@media(max-width:700px){.topbar nav{width:100%}.topbar .t2{display:none}}

[hidden]{display:none!important}.monitor-table{overflow-x:auto}.monitor-table table{width:100%;min-width:680px}.status-badge{display:inline-block;padding:4px 9px;border-radius:5px;white-space:nowrap;background:#edf1f6;color:#536176}.status-badge.ok{background:#e6f5eb;color:#176a3e}.status-badge.warning,.status-badge.offline{background:#fff0ed;color:#a23722}#detail-dialog{width:min(940px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #d3deeb;border-radius:12px;padding:24px;margin:auto}#detail-dialog::backdrop{background:#0f172a66}#detail h3{margin:22px 0 10px}.runtime-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.runtime-metric{border:1px solid #dce3ed;border-radius:7px;padding:14px}.runtime-metric strong{display:block;margin-top:8px}.toolbar input,.toolbar select{min-height:36px;padding:6px 10px;border:1px solid #c7d3e0;border-radius:6px}.toolbar{flex-wrap:wrap}#deployment{margin-bottom:18px}#detail .toolbar{margin-top:20px}#detail .muted{line-height:1.8}a:focus-visible,button:focus-visible{outline:3px solid #d8a125;outline-offset:2px}@media(max-width:650px){.runtime-grid{grid-template-columns:1fr 1fr}.wrap{padding:18px}#detail-dialog{padding:16px}}

/* Keep account tables accessible at narrow widths instead of clipping columns. */
.accounts-table{overflow:auto;max-width:100%}.accounts-table table{min-width:760px}
.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.fields>*{min-width:0}.field input,.field select,.field textarea{width:100%;min-width:0}
.actions{flex-wrap:wrap}.btn{justify-content:center;min-height:36px}.dialog{max-height:90dvh;overflow-wrap:anywhere}
@media(max-width:650px){.fields{grid-template-columns:minmax(0,1fr)}.toolbar>*{max-width:100%}.province-head{flex-wrap:wrap}.module-row{grid-template-columns:minmax(0,1fr)}.module-row .detail{overflow-wrap:anywhere}.topbar .t1{line-height:1.6}.overlay{padding:12px}}

body:has(.overlay[style*="display: flex"]){overflow:hidden}
.accounts-table th{white-space:nowrap}
