/* 传奇帐号密保修改系统 · 客服端样式
   配色与交互与「圣龙开区管家」web 端 (f:\mir-server-manager\web\app.css) 保持一致:
   深蓝主色 #0d47a1 + 浅灰底 #f4f6f9 + 白卡片细边框 + 药丸式分区选择。 */
:root{--bg:#f4f6f9;--card:#fff;--line:#e3e9f0;--text:#263238;--dim:#78909c;
      --ok:#2e7d32;--warn:#ef6c00;--bad:#c62828;--blue:#0d47a1;
      --accent:#00897b;--accent-d:#00695c;--accent-l:#e6f5f3;--accent-ring:rgba(0,137,123,.25)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
     font:16px/1.6 "Microsoft YaHei","Segoe UI",sans-serif}
a{color:var(--blue)}

/* ── 顶栏 (深蓝渐变底白字) ──────────────────────────────────── */
header{position:sticky;top:0;z-index:5;color:#fff;
       background:linear-gradient(135deg,#0d47a1 0%,#0b3d8a 55%,#0a3577 100%);
       box-shadow:0 2px 12px rgba(13,71,161,.24);
       padding:16px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* 品牌: 盾牌图标 + 两行文字 */
header .brand{display:flex;align-items:center;gap:13px;min-width:0}
header .brand-logo{width:44px;height:44px;flex:0 0 auto;border-radius:12px;
       display:flex;align-items:center;justify-content:center;color:#fff;
       background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.24);
       box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
header .brand-logo svg{width:25px;height:25px}
header .brand-txt{display:flex;flex-direction:column;line-height:1.3;min-width:0}
header .brand-t{font-size:19px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
header .brand-s{font-size:13px;opacity:.74;letter-spacing:.6px;
       margin-top:2px;white-space:nowrap}

/* 在线状态药丸 */
header .hd-status{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;
       padding:5px 12px;border-radius:999px;color:#e8f5e9;white-space:nowrap;
       background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
header .dot{width:8px;height:8px;border-radius:50%;background:#9e9e9e;display:inline-block}
header .dot.on{background:#66bb6a;box-shadow:0 0 0 3px rgba(102,187,106,.28)}

header .grow{flex:1}

/* 导航药丸组 (当前页高亮) */
header .hd-nav{display:inline-flex;align-items:center;gap:4px;padding:4px;
       border-radius:999px;background:rgba(255,255,255,.1);
       border:1px solid rgba(255,255,255,.16)}
header a.hd-tab{color:#eaf1fb;text-decoration:none;font-size:15px;
       padding:8px 17px;border-radius:999px;white-space:nowrap;
       transition:background .15s,color .15s}
header a.hd-tab:hover{background:rgba(255,255,255,.16)}
header a.hd-tab.active{background:#fff;color:var(--blue);font-weight:600;
       box-shadow:0 1px 4px rgba(0,0,0,.2)}

/* 浅描边按钮 + 白底实心按钮 */
header a.hd-btn{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.5);
       border-radius:8px;padding:8px 16px;font-size:15px;white-space:nowrap;
       transition:background .15s,border-color .15s}
header a.hd-btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.72)}
header a.hd-btn.solid{background:#fff;color:var(--blue);border-color:#fff;font-weight:600}
header a.hd-btn.solid:hover{background:#e8f0fb;border-color:#e8f0fb}

/* 用户 chip: 首字母头像 + 名字 + 角色 */
header .hd-user{display:inline-flex;align-items:center;gap:10px;
       padding:5px 14px 5px 6px;border-radius:999px;
       background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
header .hd-avatar{width:32px;height:32px;flex:0 0 auto;border-radius:50%;
       display:flex;align-items:center;justify-content:center;font-size:16px;
       font-weight:700;background:#fff;color:var(--blue)}
header .hd-user-txt{display:flex;flex-direction:column;line-height:1.24}
header .hd-user-name{font-size:15px;font-weight:600;color:#fff;white-space:nowrap}
header .hd-role{font-size:12.5px;opacity:.78;letter-spacing:.4px}

main{padding:16px 22px 44px;max-width:1500px;margin:0 auto}

/* ── 卡片 ───────────────────────────────────────────────────── */
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;
      margin-bottom:14px;overflow:hidden}
.card h2{margin:0;padding:11px 14px;font-size:17px;border-bottom:1px solid var(--line);
         background:#f7f9fc;display:flex;gap:10px;align-items:center}
.card h2 .sub{font-weight:400;color:var(--dim);font-size:14.5px}
.pad{padding:12px 14px}
.empty{color:var(--dim);padding:14px}
.scroll{overflow:auto;max-height:60vh}
.card-note{padding:8px 16px 12px;font-size:13.5px;color:#8a9bab;text-align:center;
       background:#fff;border-top:1px dashed var(--line)}

/* ── 提示条 ─────────────────────────────────────────────────── */
.msg{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:15px;border:1px solid}
.msg.success{background:#eef8f0;border-color:#c8e6c9;color:#1b5e20}
.msg.error{background:#fdecea;border-color:#f5c6cb;color:#b71c1c}
.msg.warning{background:#fff8e1;border-color:#ffe0a3;color:#8d6e00}
.msg.info{background:#eaf2fb;border-color:#cfe0f5;color:#0d47a1}
.msg code{background:#eaf2f9;padding:1px 5px;border-radius:4px;color:#40566b}

/* ── 表格 ───────────────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{background:#eef3f9;color:#546e7a;font-weight:600;position:sticky;top:0;z-index:1}
tbody tr:nth-child(even){background:#fafcfe}
tbody tr:hover{background:#eef4fd}
td.name{font-weight:600;color:var(--blue)}

/* ── 表单控件 ───────────────────────────────────────────────── */
.inp{height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;
     background:#fff;color:var(--text);font:inherit;font-size:16px;outline:none}
.inp:focus{border-color:var(--blue)}
.inp:read-only{background:#f5f8fa;color:#607d8b;cursor:default}
.inp.err{border-color:var(--bad);box-shadow:0 0 0 2px rgba(198,40,40,.14)}
.inp.code{text-align:center;letter-spacing:6px;font-size:21px;height:46px}
select.inp{padding-right:6px}

.btn{height:34px;padding:0 16px;border:1px solid var(--line);border-radius:6px;
     background:#fff;color:var(--text);font:inherit;font-size:15px;text-decoration:none;
     cursor:pointer;transition:background .15s,border-color .15s;
     display:inline-flex;align-items:center;justify-content:center}
.btn:hover{background:#f2f6fb}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:#0b3d8a}
.btn.danger{border-color:#efc9c9;color:var(--bad)}
.btn.danger:hover{background:#fdecea;border-color:#e0a9a9}
.btn.link{border:0;background:none;color:var(--blue);padding:0}
.btn.link:hover{background:none;text-decoration:underline}
.btn:disabled{opacity:.55;cursor:default}

/* ── 字段行 / 工具条 ────────────────────────────────────────── */
.bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;
     padding:11px 14px;border-bottom:1px solid var(--line);background:#fbfdff}
.fld{display:flex;align-items:center;gap:6px}
.fld.full{flex:1 1 100%;flex-wrap:wrap;margin-bottom:8px}
.fld>.lbl{color:#546e7a;font-size:15px;white-space:nowrap}
.grow{flex:1}

/* ── 分区: 药丸式单选 (与管家一致) ──────────────────────────── */
.parts{display:flex;flex-wrap:wrap;gap:8px 10px;flex:1;min-width:0;padding-top:2px}
.parts .parts-p{display:inline-flex;align-items:center;padding:10px 17px;
     border:1px solid var(--line);border-radius:18px;background:#fff;color:#37474f;
     font:inherit;font-size:16.5px;cursor:pointer;white-space:nowrap;user-select:none;
     transition:background .12s,border-color .12s,color .12s}
.parts .parts-p:hover{background:#f2f6fb;border-color:#b7d0ea}
.parts .parts-p.sel{background:var(--blue);border-color:var(--blue);color:#fff;
     font-weight:600;box-shadow:0 1px 3px rgba(13,71,161,.28)}
.parts .parts-p.off{background:#f2f4f6;border-color:#e6eaee;color:#b0bec5;cursor:not-allowed}
.parts .parts-p.off:hover{background:#f2f4f6;border-color:#e6eaee}

/* ── 键值网格 / 徽标 ────────────────────────────────────────── */
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 18px}
.kv .kv-item{display:flex;gap:8px}
.kv b{color:#546e7a;font-weight:600;min-width:96px}
.chip{display:inline-block;padding:1px 7px;border-radius:10px;background:#eceff1;
      color:#546e7a;font-size:14px}
.chip.ok{background:#e8f5e9;color:var(--ok);font-weight:600}
.chip.bad{background:#fdecea;color:var(--bad);font-weight:600}
.chip.off{background:#eceff1;color:var(--dim)}
.on-text{color:var(--ok);font-weight:600}
.off-text{color:var(--dim)}
.err{color:var(--bad);font-size:13.5px;margin-top:4px}
.hint{color:var(--dim);font-size:14px}

/* ── 登录 / 二次验证页 (居中窄卡片, 无顶栏) ──────────────────── */
.auth{max-width:400px;margin:9vh auto 0}
.auth .brand{text-align:center;margin-bottom:18px}
.auth .brand .logo{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;
      background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;
      box-shadow:0 6px 16px rgba(13,71,161,.25)}
.auth .brand .logo svg{width:27px;height:27px}
.auth .brand .t{font-size:22px;font-weight:700;color:var(--blue)}
.auth .brand .s{font-size:14px;color:var(--dim);margin-top:4px}
.auth .card .pad{padding:20px}
.auth .fld{display:block;margin-bottom:14px}
.auth .fld .lbl{display:block;margin-bottom:6px;color:#546e7a;font-size:15px}
.auth .fld .inp{width:100%;height:42px}
.auth .btn{width:100%;height:44px;font-size:16.5px}
.auth .foot{text-align:center;color:var(--dim);font-size:13.5px;margin-top:14px}
.auth .foot a{text-decoration:none}
.auth .foot a:hover{text-decoration:underline}

/* 卡片内错误提示 (登录失败时归位于表单正上方, 与居中卡片同一视觉轴) */
.auth .auth-alert{display:flex;align-items:center;gap:8px;margin-bottom:14px;
      padding:9px 12px;border:1px solid #f5c6cb;border-radius:8px;
      background:#fdecea;color:#b71c1c;font-size:14.5px}
.auth .auth-alert svg{width:16px;height:16px;flex:0 0 auto}

/* 带前置图标的输入框 */
.auth .inp-wrap{position:relative}
.auth .inp-wrap .inp{padding-left:36px}
.auth .inp-wrap.pw .inp{padding-right:40px}
.auth .inp-wrap .inp-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);
      width:16px;height:16px;color:#90a4ae;pointer-events:none;transition:color .15s}
.auth .inp-wrap:focus-within .inp-ico{color:var(--blue)}

/* 密码显隐切换 */
.auth .pw-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);
      width:30px;height:30px;border:0;background:none;cursor:pointer;color:#90a4ae;
      display:flex;align-items:center;justify-content:center;border-radius:6px;
      transition:color .15s,background .15s}
.auth .pw-toggle:hover{color:var(--blue);background:#f2f6fb}
.auth .pw-toggle svg{width:17px;height:17px}
.auth .pw-toggle .eye-hide{display:none}
.auth .pw-toggle.on .eye-show{display:none}
.auth .pw-toggle.on .eye-hide{display:block}

/* 记住账号 / 忘记密码 辅助行 */
.auth .helper{display:flex;align-items:center;justify-content:space-between;
      gap:10px;margin:-2px 0 14px;font-size:14px}
.auth .helper .chk{display:inline-flex;align-items:center;gap:6px;color:#546e7a;
      cursor:pointer;user-select:none}
.auth .helper .chk input{width:15px;height:15px;margin:0;accent-color:var(--blue);cursor:pointer}
.auth .helper .forgot{color:var(--dim)}

/* 二次验证状态提示 (由页脚脚注上移为卡片下方 chip) */
.auth .totp-chip{display:flex;align-items:center;justify-content:center;gap:7px;
      margin-top:14px;font-size:13.5px;color:var(--dim)}
.auth .totp-chip .dot{width:7px;height:7px;border-radius:50%;background:#b0bec5;flex:0 0 auto}
.auth .totp-chip .dot.on{background:#43a047}

/* 提交 loading 态 */
.auth .btn.loading{opacity:.82;cursor:default}

/* ── 安全设置页 ─────────────────────────────────────────────── */
.narrow{max-width:860px;margin:0 auto}
.qr-box{text-align:center}
.qr-box svg{width:220px;height:220px;background:#fff}
.qr-box .secret{display:inline-block;margin-top:8px;padding:6px 12px;border-radius:6px;
      background:#eaf2f9;color:#40566b;font-size:16px;letter-spacing:1px}

/* ── 工作台磁贴 ─────────────────────────────────────────────── */
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.tile{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.tile h3{margin:0 0 6px;font-size:16.5px;color:#17334c}
.tile p{margin:0;color:var(--dim);font-size:14.5px}
.tile .tag{display:inline-block;margin-top:10px;padding:1px 8px;border-radius:10px;
      background:#eceff1;color:#78909c;font-size:13.5px}
.tile .btn{margin-top:10px}

/* ── 账号管理页 (对齐「圣龙工具客户端」: 分区药丸 + 双面板 + 单表单) ── */
.ac-title{margin:0;padding:10px 14px;font-size:16.5px;font-weight:700;
      color:var(--text);border-bottom:1px solid var(--line)}

/* 分区行: 标签 + 药丸 + 右侧「重置」 */
.ac-parts-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
      padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}
.ac-parts-row>.ac-parts-lbl{color:#546e7a;font-size:15px;white-space:nowrap}
.ac-parts-row .parts{padding-top:0}
.ac-reset{margin-left:auto;flex:0 0 auto}

/* 双面板: 账号查询 | 角色名反查账号 */
.ac-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px 18px}
.ac-panel{border:1px solid var(--line);border-radius:6px;background:#fff;
      padding:12px 18px 15px;display:flex;flex-direction:column;gap:11px}
.ac-panel-t{font-size:13.5px;font-weight:700;color:var(--blue);line-height:1}
.ac-panel-b{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ac-panel-b .inp{flex:1 1 220px;min-width:0;max-width:360px}
/* 双面板输入框: 收窄 + 右移 (参考客户端) */
#acct{flex:0 1 220px;width:220px;min-width:120px;max-width:220px;margin-left:60px}
#cr-q{flex:0 1 210px;width:210px;min-width:120px;max-width:210px;margin-left:90px}
.ac-chk{display:inline-flex;align-items:center;gap:6px;color:#37474f;font-size:15px;
      white-space:nowrap;cursor:pointer;user-select:none}
.ac-chk input{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}
/* 查询 / 查账号 按钮加宽 20px; 「模糊」复选框再加 10px 间距 */
#btn-query,#btn-cr-search{padding:0 26px}
.ac-chk{margin-left:10px}

/* 青绿强调按钮 (客户端「查询 / 查账号 / 比对」) */
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.accent:hover{background:var(--accent-d);border-color:var(--accent-d)}

/* 角色反查结果: 3 列网格卡片 (名字 → 账号), 双击条目填入账号并查询 */
.ac-cr-scroll{max-height:36vh;border-top:1px solid var(--line);padding:10px 14px 12px}
.cr-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cr-item{display:flex;align-items:center;gap:8px;padding:7px 11px;min-width:0;
      border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;
      transition:background .12s,border-color .12s,box-shadow .12s}
.cr-item:hover{background:#f7fbff;border-color:#b7d0ea;
      box-shadow:0 1px 3px rgba(13,71,161,.10)}
.cr-item .cr-name{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;
      font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-item .cr-arrow{flex:0 0 auto;color:#b3c6d6;font-size:13px;line-height:1;user-select:none}
.cr-item .cr-acct{flex:0 0 auto;max-width:58%;font-size:14px;font-weight:600;color:var(--blue);
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-item.del .cr-name{color:#90a4ae;text-decoration:line-through}

/* 智能解析开关行 */
.ac-smart-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
      padding:10px 14px;border-top:1px solid var(--line);background:#fbfdff}
.ac-smart-bar .ac-chk{margin-left:0}
.ac-smart-lbl{font-weight:700;color:var(--blue)}

/* 对比解析: 同一个多行文本框 + 「清空 / 比对」 */
.ac-parse{padding:12px 14px 0;display:flex;flex-direction:column;gap:10px}
.ac-parse[hidden]{display:none}
.ac-textarea{display:block;width:100%;min-height:120px;resize:vertical;
      padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;
      color:var(--text);font:inherit;font-size:15px;line-height:1.6;outline:none}
.ac-textarea:focus{border-color:var(--accent)}
.ac-textarea::placeholder{color:#b3c2ce}
.ac-parse-ft{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.ac-parse-ft #smart-cmp{min-width:92px}
.ac-parse-ft #smart-clear{min-width:92px}
/* 修改: 提交中置灰不可点 */
.ac-bottom #btn-modify:disabled{
      background:#f2f4f6;border-color:#e3e9f0;color:#b0bec5;
      box-shadow:none;opacity:1;cursor:not-allowed}
.ac-parse-ft .hint{flex:1 1 100%;text-align:center;min-width:0;margin-top:2px}
.ac-parse-ft .hint:empty{display:none}

/* 13 字段表单: 标签右对齐 + 输入框右列, 整块居中 (尺寸参考客户端) */
.ac-form{max-width:520px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:9px}
.ac-field{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;max-width:480px;margin:0 auto;width:100%}
.ac-lbl{text-align:right;color:#37474f;font-size:15px;white-space:nowrap}
.ac-inp{width:100%;height:36px;min-width:0}

/* 底部状态条 + 居中「修改」 */
.ac-statusbar{padding:9px 14px;border-top:1px solid var(--line);background:#fbfdff;
      color:#546e7a;font-size:14.5px}
.ac-statusbar.ok{color:var(--ok);font-weight:600}
.ac-statusbar.bad{color:var(--bad);font-weight:600}
.ac-bottom{display:flex;justify-content:center;padding:12px 14px 14px}
.ac-bottom .btn{min-width:200px;height:44px;font-size:17px;font-weight:700;letter-spacing:2px}

/* 底部操作条: 吸附在窗口底部, 免下拉即可点到「修改」 */
.ac-card{overflow:visible}
.ac-card>h2:first-child{border-radius:8px 8px 0 0}
.ac-actions{position:sticky;bottom:0;z-index:5;
      border-radius:0 0 8px 8px;background:#fff;
      box-shadow:0 -4px 14px rgba(16,42,67,.08)}

/* ── 比对结果弹窗 ──────────────────────────────────────────── */
.ac-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}
.ac-modal[hidden]{display:none}
.ac-modal-mask{position:absolute;inset:0;background:rgba(16,32,48,.42)}
.ac-modal-box{position:relative;background:#fff;border-radius:10px;width:min(680px,92vw);
      max-height:84vh;display:flex;flex-direction:column;overflow:hidden;
      box-shadow:0 14px 44px rgba(0,0,0,.3)}
.ac-modal-hd{display:flex;align-items:center;justify-content:space-between;
      padding:11px 14px;border-bottom:1px solid var(--line);background:#f7f9fc;
      font-size:16px;font-weight:700;color:var(--blue)}
.ac-modal-x{border:0;background:none;font-size:21px;line-height:1;color:#90a4ae;cursor:pointer}
.ac-modal-x:hover{color:var(--bad)}
.ac-modal-bd{padding:12px 14px;overflow:auto}
.ac-modal-ft{display:flex;justify-content:flex-end;gap:10px;
      padding:10px 14px;border-top:1px solid var(--line);background:#fbfdff}
.cmp-table{width:100%;border-collapse:collapse;font-size:14.5px}
.cmp-table th,.cmp-table td{padding:6px 8px;border-bottom:1px solid var(--line);
      text-align:left;white-space:normal}
.cmp-table th{background:#eef3f9;color:#546e7a;font-weight:600}
.cmp-table td.k{width:88px;font-weight:600;color:#546e7a;white-space:nowrap}
.cmp-table td.v{word-break:break-all}
.cmp-table td.v.empty{color:#b0bec5}
.cmp-table td.r{width:64px;text-align:center;white-space:nowrap}
.cmp-sum{margin-top:10px;font-size:14.5px;color:#546e7a}
.cmp-sum b{color:var(--blue)}

/* ── 工单报表 (M5) ──────────────────────────────────────────── */
.rp-num{font-size:28px;font-weight:700;color:var(--blue);line-height:1.2;margin:0 0 4px}
.tile p.rp-num{margin:0 0 4px}
.rp-quick{flex-wrap:wrap}
table td.rp-c,table th.rp-c{text-align:center;width:88px}
table td.rp-date{font-variant-numeric:tabular-nums;color:#37474f}
table td.rp-total{position:relative;text-align:center}
.rp-bar{display:block;height:4px;margin-top:4px;border-radius:2px;background:#eceff1;overflow:hidden}
.rp-bar i{display:block;height:100%;background:var(--accent);border-radius:2px}

/* 图表: 条形对比 / 折线趋势 / 占比环形 (纯 CSS + 内联 SVG, 无外部依赖) */
.rp-empty{color:#90a4ae;text-align:center;padding:22px 14px;margin:0}
/* 条形对比 (方图) */
.rp-chart{display:flex;align-items:stretch;gap:8px;height:200px;padding:8px 2px 0;overflow-x:auto}
.rp-col{flex:1 1 0;min-width:46px;display:flex;flex-direction:column;align-items:center}
.rp-col-v{font-size:12.5px;color:#546e7a;font-variant-numeric:tabular-nums;line-height:1.4}
.rp-col-bar{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
.rp-col-bar i{display:block;width:58%;min-width:16px;min-height:2px;border-radius:5px 5px 0 0;
      background:linear-gradient(180deg,#2bb39f,var(--blue))}
.rp-col-x{font-size:11.5px;color:#90a4ae;margin-top:6px;max-width:100%;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 折线趋势 */
.rp-linewrap{overflow-x:auto}
.rp-line{display:block;width:100%;height:auto;min-width:520px}
.rp-line-grid{stroke:#e8eef4;stroke-width:1}
.rp-line-y{fill:#90a4ae;font-size:13px;text-anchor:end}
.rp-line-x{fill:#90a4ae;font-size:13px;text-anchor:middle}
.rp-line-area{fill:rgba(13,71,161,.10);stroke:none}
.rp-line-stroke{fill:none;stroke:var(--blue);stroke-width:2.4;
      stroke-linejoin:round;stroke-linecap:round}
.rp-line-dot{fill:#fff;stroke:var(--blue);stroke-width:2.2}
/* 柱状/曲线 切换 (纯 CSS, 无 JS) */
.rp-switch{position:relative}
.rp-switch>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rp-switch-tabs{display:inline-flex;gap:6px;margin-bottom:10px}
.rp-switch-tabs label{cursor:pointer;font-size:13.5px;line-height:1;padding:7px 16px;
      border:1px solid #cfd8dc;border-radius:8px;color:#546e7a;background:#fff;
      transition:background .15s,border-color .15s,color .15s}
.rp-switch-tabs label:hover{background:#eef4fd;border-color:#9fc0e6;color:var(--blue)}
.rp-view{display:none}
/* 位置选择器: 两组 radio/label/view 一一对应, 客服页与管理员页共用 */
.rp-switch>input:nth-of-type(1):checked ~ .rp-switch-tabs>label:nth-of-type(1),
.rp-switch>input:nth-of-type(2):checked ~ .rp-switch-tabs>label:nth-of-type(2){
      background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.rp-switch>input:nth-of-type(1):checked ~ .rp-switch-body>.rp-view:nth-of-type(1){display:block}
.rp-switch>input:nth-of-type(2):checked ~ .rp-switch-body>.rp-view:nth-of-type(2){display:block}
/* 当天对比: 左条形 + 右环形 */
.rp-split{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;
      align-items:center;padding:6px 8px 2px}
.rp-donutbox{display:flex;flex-direction:column;align-items:center;gap:12px}
.rp-donut{position:relative;width:180px;height:180px;border-radius:50%;flex:none}
.rp-donut-hole{position:absolute;inset:22%;border-radius:50%;background:#fff;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      font-size:26px;font-weight:700;color:var(--blue);line-height:1}
.rp-donut-hole small{font-size:12px;font-weight:400;color:var(--dim);margin-top:2px}
.rp-legend{list-style:none;margin:0;padding:0;width:100%;display:flex;
      flex-direction:column;gap:5px}
.rp-legend li{display:flex;align-items:center;gap:7px;font-size:13.5px;color:#546e7a}
.rp-legend li i{width:11px;height:11px;border-radius:3px;flex:none}
.rp-lg-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-lg-val{font-variant-numeric:tabular-nums;color:#37474f}
/* 修改记录: 字段标签 + 类型徽标 + 分页条 */
.rp-keys{color:#37474f;font-size:13.5px}
.rp-tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12.5px;
      background:#e8f0fb;color:var(--blue)}
.rp-tag.warn{background:#fdecea;color:#c62828}
.rp-page{display:flex;align-items:center;gap:10px;padding:12px 4px 2px}
.rp-page-info{font-size:13.5px;color:var(--dim)}
@media (max-width:820px){
  .rp-split{grid-template-columns:1fr;gap:16px}
  .rp-donutbox{flex-direction:row;flex-wrap:wrap;justify-content:center}
  .rp-legend{width:auto;min-width:200px}
}

/* ── 移动端最小自适应增强 (<=600px) ────────────────────────────
   客服主战场是 PC; 手机仅用于只读查看, 故只做降级适配:
   折行转竖排 + 触摸目标放大 + 表格在容器内横向滚动, 不改 PC 观感。 */
@media (max-width:600px){
  html{-webkit-text-size-adjust:100%}
  main{padding:12px 12px 34px}
  header{padding:12px 14px;gap:10px}
  header .brand-logo{width:38px;height:38px}
  header .brand-logo svg{width:22px;height:22px}
  header .brand-t{font-size:16.5px}
  header .brand-s{display:none}
  header .hd-status{display:none}
  header .hd-user{padding:3px}
  header .hd-user-txt{display:none}
  header .hd-nav{gap:2px}
  header a.hd-tab{padding:7px 14px;font-size:14px}
  header a.hd-btn{padding:7px 13px;font-size:14px}

  /* 工具条字段改竖排, 输入框占满整行 */
  .bar{padding:9px 10px}
  .fld{flex:1 1 100%;flex-wrap:wrap}
  .fld>.inp,.fld>select.inp{flex:1 1 auto;min-width:0}

  /* 触摸目标 >=40px */
  .btn{height:40px;padding:0 14px}
  .parts .parts-p{padding:10px 15px;font-size:16px}

  /* 键值/磁贴窄屏单列 */
  .kv,.grid{grid-template-columns:1fr}

  /* 登录卡与安全设置页自适应 */
  .auth{max-width:92%;margin-top:6vh}
  .auth .fld .inp{height:44px}
  .auth .pw-toggle{width:40px;height:40px;right:2px}
  .auth .helper{font-size:13.5px}
  .narrow{max-width:100%}
  .qr-box svg{width:min(70vw,220px);height:min(70vw,220px)}

  /* 账号管理页: 双面板与表单改竖排, 标签左对齐 */
  .ac-panels{grid-template-columns:1fr}
  .ac-panel-b .inp{max-width:none}
  #acct,#cr-q{margin-left:0;width:auto;max-width:none;flex:1 1 160px}
  .ac-form{max-width:100%}
  .ac-field{grid-template-columns:88px minmax(0,1fr);gap:12px;max-width:none}
  .ac-reset{margin-left:0}
  .cr-list{grid-template-columns:1fr}

  /* 表格维持容器内横向滚动, 不挤压列 */
  .scroll{-webkit-overflow-scrolling:touch}
  table{font-size:14.5px}
}

/* ══════════════════════════════════════════════════════════════
   细节优化 (不改任何布局: 排列/列数/间距结构一律保持不变)
   仅调整悬停/选中/焦点态、颜色、层级、圆点与动效。
   ══════════════════════════════════════════════════════════════ */

/* 1. 分区药丸: 悬停更清晰、选中更立体、禁用更弱化 */
.parts .parts-p:hover{background:#eef4fd;border-color:#9fc0e6;color:var(--blue)}
.parts .parts-p.sel{box-shadow:0 2px 6px rgba(13,71,161,.32)}
.parts .parts-p.off{background:#f4f6f8;border-color:#e8ecf0;color:#c2ccd4}
.parts .parts-p.off:hover{background:#f4f6f8;border-color:#e8ecf0}

/* 2. 账号页输入框: 占位色统一; 面板输入聚焦走青绿细边框(与青绿按钮呼应) */
.ac-inp::placeholder,.ac-panel-b .inp::placeholder{color:#b3c2ce}
.ac-panel-b .inp:focus{border-color:var(--accent)}

/* 3. 按钮: 青绿强调按钮加投影与下压反馈; 「修改」改深蓝实底主按钮 */
.btn.accent{box-shadow:0 1px 3px rgba(0,137,123,.3)}
.btn.accent:hover{background:var(--accent-d);border-color:var(--accent-d);
      box-shadow:0 2px 6px rgba(0,137,123,.34)}
.btn:active{transform:translateY(1px)}
.ac-bottom #btn-modify{background:var(--blue);border-color:var(--blue);color:#fff;
      font-weight:700;border-radius:8px;
      box-shadow:0 4px 12px rgba(13,71,161,.34)}
.ac-bottom #btn-modify:hover{background:#0b3d8a;border-color:#0b3d8a;
      box-shadow:0 6px 16px rgba(13,71,161,.42)}

/* 4. 底部状态条: 前置状态圆点 + 成功/失败浅底 */
.ac-statusbar{display:flex;align-items:center;gap:8px}
.ac-statusbar::before{content:"";flex:0 0 auto;width:8px;height:8px;
      border-radius:50%;background:#b0bec5}
.ac-statusbar.ok{background:#f2f9f3}
.ac-statusbar.ok::before{background:var(--ok)}
.ac-statusbar.bad{background:#fdf2f1}
.ac-statusbar.bad::before{background:var(--bad)}

/* 5. 表单标签与禁用态 */
.ac-lbl{font-size:14.5px;color:#455a64}
.ac-inp:disabled{background:#f5f8fa;color:#90a4ae}

/* 6. 角色反查: 已删除行弱化并加删除线 */
table.vm tr.del td{color:#8a9bab}
table.vm tr.del td.name{color:#90a4ae;text-decoration:line-through}

/* 7. 智能解析: 粘贴框略高, 底部提示更沉稳 */
.ac-textarea{min-height:132px}
.ac-parse-ft .hint{color:#607d8b}

/* 8. 比对弹窗: 遮罩轻微模糊 + 弹出动效 */
.ac-modal-mask{backdrop-filter:blur(2px)}
.ac-modal-box{animation:acPop .16s ease-out}
@keyframes acPop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}

/* 9. 键盘可达性: 统一可见焦点轮廓 (多行框只用 1px 边框变色, 不加粗轮廓) */
.btn:focus-visible,.ac-chk input:focus-visible,
.parts .parts-p:focus-visible,.ac-modal-x:focus-visible{
      outline:2px solid var(--blue);outline-offset:2px}

/* 控件高度统一 36px (仅桌面; <=600px 仍走 40px 触摸目标, 不覆盖移动端) */
@media (min-width:601px){
  .ac-panel-b .inp,.ac-inp{height:36px}
  .btn.ac-reset,.ac-parse-ft .btn{height:36px}
}

/* ══════════════════════════════════════════════════════════════
   查单报表页 细节优化 (不改任何布局: 排列/列数/间距结构保持不变)
   仅调整悬停/选中/焦点态、颜色、数字排版与进度条质感。
   ══════════════════════════════════════════════════════════════ */

/* 1. 快捷区间按钮: 悬停蓝调 + 按下下沉 + 当前区间高亮为实底 */
.rp-quick .btn{transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.rp-quick .btn:hover{background:#eef4fd;border-color:#9fc0e6;color:var(--blue)}
.rp-quick .btn.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600;
      box-shadow:0 1px 3px rgba(13,71,161,.28)}
.rp-quick .btn.on:hover{background:#0b3d8a;border-color:#0b3d8a}

/* 2. 日期输入: 数值等宽对齐, 日历图标悬停变清晰 */
.bar input[type="date"]{font-variant-numeric:tabular-nums}
.bar input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;
      transition:opacity .15s}
.bar input[type="date"]:hover::-webkit-calendar-picker-indicator{opacity:.95}

/* 3. 统计数字: 等宽对齐、字距收紧, 视觉更沉稳 */
.rp-num{font-variant-numeric:tabular-nums;letter-spacing:-.4px}

/* 4. 表格数字列: 等宽对齐; 「单量」列加权强调 */
table td.rp-c,table th.rp-c,table td.rp-date{font-variant-numeric:tabular-nums}
table td.rp-total{font-weight:600;color:#37474f}

/* 5. 进度条: 轨道内阴影更沉稳, 填充青绿渐变更有质感 */
.rp-bar{background:#e6ebf0;box-shadow:inset 0 1px 1px rgba(13,71,161,.07)}
.rp-bar i{background:linear-gradient(90deg,var(--accent),#2bb39f)}

/* 6. 空态提示: 居中且留白更舒展 */
.scroll td.empty{text-align:center;color:#90a4ae;padding:20px 14px;white-space:normal}

/* ══════════════════════════════════════════════════════════════
   账号查询页 左右二列布局 (参考「圣龙工具客户端」账号查询页)
   左列 = 玩家资料多行框(比对)   右列 = 账号真实记录表单
   ══════════════════════════════════════════════════════════════ */
.ac-split{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
      column-gap:56px;align-items:stretch;max-width:1120px;margin:0 auto;
      padding:22px 18px 26px;background:#fff}
.ac-col{display:flex;flex-direction:column;min-width:0;padding:0}
/* 左列: 独立容器框 (参考客户端「资料粘贴区」卡片: 浅底 + 细边 + 圆角) */
.ac-col:first-child{border:1px solid var(--line);border-radius:10px;background:#fbfdff;
      padding:16px 16px 18px;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.ac-col-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ac-col-t{font-size:13.5px;font-weight:700;color:var(--blue);line-height:1.4}

/* 未勾选「智能解析」: 隐藏左列解析区与中缝箭头, 只居中显示表单 */
.ac-split.no-parse{grid-template-columns:minmax(0,1fr)}
.ac-split.no-parse .ac-col:first-child,
.ac-split.no-parse .ac-link{display:none}

/* 中间连接件: 上=比对(向左箭头, 深蓝), 下=回显(向右箭头, 青绿) (参考客户端圆钮样式) */
.ac-link{position:relative;display:flex;flex-direction:column;align-items:center;
      justify-content:center;gap:28px;width:64px;padding:0 4px}
.ac-link .ac-node{position:relative;z-index:1;width:52px;height:52px;border-radius:50%;
      display:flex;align-items:center;justify-content:center;cursor:pointer;
      background:var(--blue);color:#fff;border:1.5px solid var(--blue);
      box-shadow:0 2px 8px rgba(13,71,161,.28)}
.ac-link .ac-node svg{width:26px;height:26px;pointer-events:none}
.ac-link .ac-node-arr{background:var(--accent);border-color:var(--accent);color:#fff;
      box-shadow:0 2px 8px rgba(0,137,123,.32)}
/* 箭头按条件置灰: 左(比对校验) 取决于多行框是否为空; 右(回显) 取决于是否已查询到账号 */
.ac-link.off-l .ac-node{background:#eceff1;border-color:#e0e5ea;color:#b0bec5;box-shadow:none;cursor:not-allowed}
.ac-link.off-r .ac-node-arr{background:#eceff1;border-color:#e0e5ea;color:#b0bec5;box-shadow:none;cursor:not-allowed}

/* 二列语境下覆盖旧的居中/内边距, 让两列各自撑满整列 */
.ac-split .ac-parse{padding:0;flex:1 1 auto;min-height:0}
.ac-split .ac-textarea{flex:1 1 auto;min-height:300px}
.ac-split .ac-form{max-width:none;margin:0;padding:0;flex:1 1 auto}

@media (max-width:600px){
  .ac-split{grid-template-columns:1fr;row-gap:18px}
  .ac-link{display:none}
  .ac-split .ac-textarea{min-height:160px}
}

/* 多行框右键菜单 (粘贴 / 清除 / 全选 / 复制) */
.ctx-menu{position:fixed;z-index:60;min-width:120px;padding:4px;display:flex;
      flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;
      box-shadow:0 6px 20px rgba(16,42,67,.18)}
.ctx-menu[hidden]{display:none}
.ctx-menu button{appearance:none;border:0;background:none;text-align:center;
      padding:7px 14px;border-radius:6px;font:inherit;font-size:14.5px;
      letter-spacing:3px;color:#37474f;cursor:pointer;white-space:nowrap}
.ctx-menu button:hover{background:#eef5fd;color:var(--blue)}
