/* ============================================================================
   天河水科技官网 · 小程序登录 / 管理后台 / 用户后台  样式
   —— 与站点深色科技风保持一致（深空蓝 + 青蓝紫渐变 + 玻璃拟态）
   ============================================================================ */

:root{
  --g-bg:#04070e;
  --g-panel:rgba(16,27,49,.92);
  --g-panel2:rgba(11,20,38,.96);
  --g-line:rgba(96,148,225,.18);
  --g-line2:rgba(96,148,225,.36);
  --g-txt:#e9f0ff;
  --g-muted:#93a8c9;
  --g-dim:#61759a;
  --g-pri:#2f7cf6;
  --g-cyan:#22d3ee;
  --g-violet:#7c5cff;
  --g-ok:#4ade9f;
  --g-warn:#fbbf24;
  --g-err:#fb7185;
  --g-grad:linear-gradient(115deg,#22d3ee 0%,#2f7cf6 45%,#7c5cff 100%);
  --g-mono:"Bahnschrift","DIN Alternate","Consolas","Menlo",monospace;
  --g-sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Source Han Sans SC",system-ui,-apple-system,sans-serif;
}

/* ---------------- 导航入口按钮 ---------------- */
.nav-actions{display:flex;align-items:center;gap:10px}
.nav-login{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-family:var(--g-sans);font-size:14px;font-weight:600;letter-spacing:.03em;
  color:#d9e8ff;background:rgba(34,211,238,.10);
  border:1px solid rgba(34,211,238,.42);border-radius:10px;padding:10px 16px;
  transition:.26s;white-space:nowrap;
}
.nav-login:hover{background:rgba(34,211,238,.2);transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(34,211,238,.9)}
.nav-login svg{width:17px;height:17px;fill:#6ee7f5}

/* ---------------- 中英切换（语言开关） ---------------- */
.lang-switch{
  display:inline-flex;align-items:center;padding:3px;border-radius:9px;
  background:rgba(12,22,40,.75);border:1px solid var(--line-2);gap:2px;
}
.lang-switch .lang-opt{
  display:inline-block;text-decoration:none;font-family:var(--mono);font-size:12px;
  letter-spacing:.06em;color:var(--muted);padding:6px 12px;border-radius:7px;
  transition:.22s;white-space:nowrap;line-height:1;
}
.lang-switch .lang-opt:hover{color:#cfe4ff;background:rgba(47,124,246,.16)}
.lang-switch .lang-opt.on{
  color:#03101f;font-weight:700;background:linear-gradient(115deg,#22d3ee,#2f7cf6 55%,#7c5cff);
  box-shadow:0 6px 18px -8px rgba(47,124,246,.95);
}

/* 浮动机器人入口（移动端 / 全站可达） */
.tjh-float{
  position:fixed;right:22px;bottom:26px;z-index:70;display:flex;flex-direction:column;gap:10px;align-items:flex-end;
}
.tjh-float button{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;border:1px solid var(--g-line2);
  background:rgba(6,12,24,.9);backdrop-filter:blur(12px);color:var(--g-txt);
  font-family:var(--g-sans);font-size:13.5px;font-weight:600;border-radius:99px;padding:12px 20px;
  box-shadow:0 14px 34px -18px rgba(0,0,0,.95);transition:.26s;
}
.tjh-float button:hover{transform:translateY(-3px);border-color:rgba(34,211,238,.6)}
.tjh-float button i{
  width:8px;height:8px;border-radius:50%;background:var(--g-cyan);box-shadow:0 0 12px var(--g-cyan);
  animation:tjhPulse 2s infinite;
}
@keyframes tjhPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}

/* ---------------- 通用遮罩 / 卡片 ---------------- */
.tjh-mask{
  position:fixed;inset:0;z-index:120;display:none;
  background:rgba(2,5,11,.78);backdrop-filter:blur(9px);
  overflow-y:auto;padding:34px 18px 60px;
}
.tjh-mask.open{display:block;animation:tjhFade .28s ease}
@keyframes tjhFade{from{opacity:0}to{opacity:1}}
.tjh-shell{
  width:min(1080px,94vw);margin:0 auto;border-radius:22px;overflow:hidden;
  border:1px solid var(--g-line2);background:var(--g-panel2);
  box-shadow:0 50px 130px -50px rgba(0,0,0,1);animation:tjhRise .34s cubic-bezier(.2,.75,.3,1);
}
@keyframes tjhRise{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}
.tjh-shell.wide{width:min(1280px,96vw)}

/* ---------------- 登录门禁 ---------------- */
.tjh-gate{display:grid;grid-template-columns:.92fr 1.08fr;min-height:560px}
.tjh-gate-side{
  position:relative;padding:44px 38px;overflow:hidden;
  background:linear-gradient(150deg,rgba(20,38,70,.95),rgba(7,13,25,.98));
  border-right:1px solid var(--g-line);
}
.tjh-gate-side::before{
  content:"";position:absolute;inset:-30%;pointer-events:none;
  background:radial-gradient(circle at 25% 15%,rgba(34,211,238,.2),transparent 45%),
             radial-gradient(circle at 78% 82%,rgba(124,92,255,.22),transparent 48%);
}
.tjh-gate-side .in{position:relative}
.tjh-logo{display:flex;align-items:center;gap:12px;margin-bottom:34px}
.tjh-logo svg{flex:0 0 auto}
.tjh-logo b{display:block;font-size:16.5px;letter-spacing:.05em}
.tjh-logo span{display:block;font-family:var(--g-mono);font-size:9.5px;letter-spacing:.22em;color:var(--g-dim);text-transform:uppercase}
.tjh-gate-side h3{font-size:25px;font-weight:800;line-height:1.34;letter-spacing:-.01em}
.tjh-gate-side h3 em{font-style:normal;background:var(--g-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tjh-gate-side p{color:var(--g-muted);font-size:14px;margin-top:14px}
.tjh-feat{margin-top:28px;display:grid;gap:13px}
.tjh-feat div{display:flex;gap:11px;font-size:13.5px;color:#c3d5f0;align-items:flex-start}
.tjh-feat div i{
  flex:0 0 auto;width:18px;height:18px;border-radius:6px;margin-top:2px;
  background:rgba(34,211,238,.16);border:1px solid rgba(34,211,238,.48);
  display:grid;place-items:center;font-size:10px;color:#8fe6f5;font-style:normal;
}
.tjh-gate-note{
  margin-top:30px;padding:14px 16px;border-radius:12px;font-size:12.4px;line-height:1.75;
  color:#9db4d6;background:rgba(47,124,246,.08);border:1px dashed var(--g-line2);
}
.tjh-gate-note b{color:#cfe2ff}

.tjh-gate-main{padding:40px 40px 34px;display:flex;flex-direction:column}

/* 选项卡 */
.tjh-tabs{display:flex;gap:6px;border-bottom:1px solid var(--g-line);margin-bottom:26px;flex-wrap:wrap}
.tjh-tabs button{
  position:relative;cursor:pointer;background:none;border:0;padding:11px 4px;margin-right:20px;
  color:var(--g-dim);font-family:var(--g-sans);font-size:14.5px;font-weight:600;transition:.24s;
}
.tjh-tabs button:hover{color:var(--g-txt)}
.tjh-tabs button.on{color:var(--g-txt)}
.tjh-tabs button.on::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--g-grad);
}
.tjh-tabs button em{font-style:normal;font-family:var(--g-mono);font-size:10.5px;color:var(--g-cyan);margin-left:5px}

.tjh-panes{flex:1;display:flex;flex-direction:column}
.tjh-pane{display:none;flex:1;flex-direction:column}
.tjh-pane.on{display:flex;animation:tjhFade .26s ease}

/* 表单 */
.tjh-field{margin-bottom:15px}
.tjh-field label{display:block;font-size:12.5px;color:var(--g-muted);margin-bottom:7px;letter-spacing:.02em}
.tjh-field label em{font-style:normal;color:var(--g-err)}
.tjh-inp{
  width:100%;padding:12px 14px;border-radius:11px;font-family:var(--g-sans);font-size:14.5px;
  color:var(--g-txt);background:rgba(4,9,18,.86);border:1px solid var(--g-line);outline:none;transition:.22s;
}
.tjh-inp:focus{border-color:rgba(34,211,238,.62);box-shadow:0 0 0 3px rgba(34,211,238,.1)}
.tjh-inp::placeholder{color:#51658a}
select.tjh-inp{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#5f7396 50%),linear-gradient(135deg,#5f7396 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.tjh-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tjh-row2-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.tjh-inline{display:flex;gap:10px}
.tjh-inline .tjh-inp{flex:1}
.tjh-code-btn{
  flex:0 0 auto;cursor:pointer;padding:0 16px;border-radius:11px;font-family:var(--g-sans);font-size:13.5px;font-weight:600;
  color:#8fe6f5;background:rgba(34,211,238,.11);border:1px solid rgba(34,211,238,.4);transition:.22s;white-space:nowrap;
}
.tjh-code-btn:hover:not(:disabled){background:rgba(34,211,238,.2)}
.tjh-code-btn:disabled{opacity:.5;cursor:not-allowed}
.tjh-hint{font-size:12.2px;color:var(--g-dim);margin-top:9px;line-height:1.7}
.tjh-hint.warn{color:#f5c66b}

.tjh-btn{
  width:100%;cursor:pointer;margin-top:8px;padding:13px 20px;border-radius:12px;border:0;
  font-family:var(--g-sans);font-size:15px;font-weight:700;letter-spacing:.03em;color:#03101f;
  background:var(--g-grad);box-shadow:0 14px 34px -16px rgba(47,124,246,1);transition:.26s;
}
.tjh-btn:hover{transform:translateY(-2px);box-shadow:0 20px 42px -16px rgba(47,124,246,1)}
.tjh-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.tjh-btn.ghost{
  background:rgba(47,124,246,.1);color:#cfe2ff;border:1px solid var(--g-line2);box-shadow:none;font-weight:600;
}
.tjh-btn.ghost:hover{background:rgba(47,124,246,.18)}
.tjh-btn.danger{background:linear-gradient(115deg,#fb7185,#e11d48);color:#fff;box-shadow:0 14px 34px -16px rgba(225,29,72,.95)}
.tjh-btn.sm{width:auto;padding:8px 15px;font-size:13px;margin:0;border-radius:9px}

.tjh-foot{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.tjh-link{cursor:pointer;color:#8fe6f5;font-size:13.5px;text-decoration:none;border-bottom:1px dashed rgba(34,211,238,.4)}
.tjh-link:hover{color:#c0f3fd}
.tjh-sub{font-size:12.5px;color:var(--g-dim)}

/* 扫码区 */
.tjh-qrwrap{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}
.tjh-qrbox{
  position:relative;flex:0 0 auto;padding:14px;border-radius:16px;background:#fff;
  box-shadow:0 18px 44px -22px rgba(0,0,0,.95);
}
.tjh-qrbox canvas{display:block;border-radius:4px}
.tjh-qrbox .cover{
  position:absolute;inset:14px;display:none;place-items:center;text-align:center;background:rgba(255,255,255,.94);
  color:#0b1a2e;font-size:13px;font-weight:700;border-radius:4px;padding:12px;
}
.tjh-qrbox .cover.show{display:grid}
.tjh-qr-info{flex:1;min-width:220px}
.tjh-scanstate{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:#cfe2ff}
.tjh-scanstate i{width:8px;height:8px;border-radius:50%;background:var(--g-cyan);box-shadow:0 0 12px var(--g-cyan);animation:tjhPulse 1.6s infinite}
.tjh-scanstate.ok i{background:var(--g-ok);box-shadow:0 0 12px var(--g-ok)}
.tjh-scanstate.wait i{background:var(--g-warn);box-shadow:0 0 12px var(--g-warn)}
.tjh-steps{margin-top:16px;display:grid;gap:10px;counter-reset:s}
.tjh-steps div{display:flex;gap:10px;font-size:13.4px;color:var(--g-muted);align-items:flex-start}
.tjh-steps div::before{
  counter-increment:s;content:counter(s);flex:0 0 auto;width:19px;height:19px;border-radius:50%;
  display:grid;place-items:center;font-family:var(--g-mono);font-size:11px;color:#8fe6f5;
  background:rgba(34,211,238,.13);border:1px solid rgba(34,211,238,.42);
}
.tjh-qr-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}

/* ---------------- 控制台外壳 ---------------- */
.tjh-app{display:none}
.tjh-app.open{display:block}
.tjh-top{
  position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 30px;border-bottom:1px solid var(--g-line);background:rgba(7,12,23,.94);backdrop-filter:blur(14px);
  flex-wrap:wrap;
}
.tjh-top .who{display:flex;align-items:center;gap:12px}
.tjh-avatar{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:16px;color:#03101f;
  background:var(--g-grad);
}
.tjh-top .who b{display:block;font-size:14.5px}
.tjh-top .who span{display:block;font-size:11.5px;color:var(--g-dim);font-family:var(--g-mono);letter-spacing:.1em}
.tjh-badge{
  display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.06em;
  padding:4px 11px;border-radius:99px;
}
.tjh-badge.admin{color:#f5d68a;background:rgba(251,191,36,.14);border:1px solid rgba(251,191,36,.42)}
.tjh-badge.user{color:#8fe6f5;background:rgba(34,211,238,.13);border:1px solid rgba(34,211,238,.42)}
/* 未知角色：显式为「未知身份」，不用可信身份的中性色，避免被误读成正常账号 */
.tjh-badge.warn{color:#ffa3b1;background:rgba(251,113,133,.13);border:1px solid rgba(251,113,133,.42)}

.tjh-appbody{padding:28px 30px 54px}

/* 家长端首屏：给家长朋友们的一封公开信 */
.tjh-letter{
  border-radius:18px;border:1px solid rgba(96,148,225,.26);overflow:hidden;
  background:linear-gradient(165deg,rgba(20,34,62,.92),rgba(7,12,24,.94));
  box-shadow:0 24px 60px -34px rgba(47,124,246,.65);
}
.tjh-letter .lhead{
  padding:26px 30px 22px;border-bottom:1px solid var(--g-line);
  background:radial-gradient(120% 140% at 0% 0%,rgba(34,211,238,.14),transparent 62%);
}
.tjh-letter .lhead .lk{font-family:var(--g-mono);font-size:11px;letter-spacing:.28em;color:var(--g-cyan);text-transform:uppercase}
.tjh-letter .lhead h4{font-size:24px;font-weight:800;letter-spacing:-.01em;margin:10px 0 7px;line-height:1.32}
.tjh-letter .lhead .lsub{font-size:13px;color:var(--g-muted);letter-spacing:.04em}
.tjh-letter .lbody{padding:24px 30px 8px}
.tjh-letter .lbody p{font-size:14.2px;line-height:2;color:#cbdaf2;margin-bottom:14px;text-indent:2em}
.tjh-letter .lverse{
  margin:20px 0 22px;padding:18px 22px;border-left:3px solid var(--g-cyan);border-radius:0 12px 12px 0;
  background:rgba(34,211,238,.07);
}
.tjh-letter .lverse div{font-size:15px;line-height:1.95;color:#9fe9f5;font-weight:600;letter-spacing:.02em}
.tjh-letter .lkp{
  margin-bottom:12px;padding:15px 18px;border-radius:12px;
  border:1px solid var(--g-line);background:rgba(12,21,40,.72);
}
.tjh-letter .lkp b{display:block;font-size:13px;color:var(--g-cyan);margin-bottom:7px;letter-spacing:.06em}
.tjh-letter .lkp span{font-size:13.2px;line-height:1.92;color:#bcd0ec}
.tjh-letter .lend{text-indent:0;color:#dbe7fa}
.tjh-letter .lsign{margin-top:8px;padding-top:16px;border-top:1px dashed var(--g-line);text-align:right}
.tjh-letter .lsign b{display:block;font-size:16px;letter-spacing:.06em;
  background:var(--g-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tjh-letter .lsign span{font-size:12.5px;color:var(--g-dim)}
.tjh-letter .lfoot{
  padding:16px 30px;border-top:1px solid var(--g-line);background:rgba(9,16,30,.6);
  font-size:12.5px;color:var(--g-muted);letter-spacing:.03em;
}

.tjh-secttl{display:flex;align-items:center;gap:12px;margin:34px 0 16px}
.tjh-secttl:first-child{margin-top:0}
.tjh-secttl .k{font-family:var(--g-mono);font-size:11px;letter-spacing:.26em;color:var(--g-cyan);text-transform:uppercase}
.tjh-secttl h4{font-size:19px;font-weight:800;letter-spacing:-.01em}
.tjh-secttl .line{flex:1;height:1px;background:var(--g-line)}

/* 统计卡 */
.tjh-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.tjh-stat{
  padding:20px 18px;border-radius:15px;border:1px solid var(--g-line);
  background:linear-gradient(160deg,rgba(18,30,54,.8),rgba(8,14,26,.85));
}
.tjh-stat .v{font-family:var(--g-mono);font-size:27px;font-weight:700;line-height:1;
  background:var(--g-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tjh-stat .l{font-size:12.5px;color:var(--g-muted);margin-top:9px}
.tjh-stat.amber .v{background:linear-gradient(115deg,#fbbf24,#fb7185);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 表格 */
.tjh-tablewrap{border:1px solid var(--g-line);border-radius:15px;overflow:hidden;background:rgba(9,16,30,.6)}
.tjh-toolbar{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--g-line);flex-wrap:wrap}
.tjh-toolbar .tjh-inp{max-width:260px}
.tjh-table{width:100%;border-collapse:collapse;font-size:13.3px}
.tjh-table th{
  text-align:left;padding:12px 16px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--g-dim);background:rgba(47,124,246,.07);border-bottom:1px solid var(--g-line);white-space:nowrap;
}
.tjh-table td{padding:13px 16px;border-bottom:1px solid rgba(96,148,225,.09);color:#c7d8f2;vertical-align:middle}
.tjh-table tr:last-child td{border-bottom:0}
.tjh-table tr:hover td{background:rgba(47,124,246,.06)}
.tjh-table .mono{font-family:var(--g-mono);font-size:12.3px;color:#9fb6d8}
.tjh-table .acts{display:flex;gap:7px;flex-wrap:wrap}
.tjh-tag{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}
.tjh-tag.ok{color:#7ff0b5;background:rgba(74,222,159,.13);border:1px solid rgba(74,222,159,.4)}
.tjh-tag.wait{color:#fbd57a;background:rgba(251,191,36,.13);border:1px solid rgba(251,191,36,.4)}
.tjh-tag.err{color:#ffa3b1;background:rgba(251,113,133,.13);border:1px solid rgba(251,113,133,.42)}
.tjh-tag.info{color:#8fe6f5;background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.4)}
.tjh-tag.mute{color:#9aabc7;background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.3)}
.tjh-empty{padding:40px 20px;text-align:center;color:var(--g-dim);font-size:13.5px}

/* 用户后台：信息卡 */
.tjh-grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}
.tjh-card{
  padding:22px 22px;border-radius:16px;border:1px solid var(--g-line);
  background:linear-gradient(160deg,rgba(18,30,54,.72),rgba(8,14,26,.8));
}
.tjh-card h5{font-size:15px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:9px}
.tjh-card h5 i{width:7px;height:7px;border-radius:50%;background:var(--g-cyan);box-shadow:0 0 10px var(--g-cyan)}
.tjh-kv{display:grid;gap:11px}
.tjh-kv div{display:flex;justify-content:space-between;gap:14px;font-size:13.6px;color:#c7d8f2;align-items:flex-start}
.tjh-kv div span:first-child{color:var(--g-dim);flex:0 0 auto;min-width:88px}
.tjh-kv div span:last-child{text-align:right;word-break:break-all}
.tjh-kv .big{font-family:var(--g-mono);font-size:21px;font-weight:700;
  background:var(--g-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 上传槽位 */
.tjh-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tjh-slot{
  position:relative;border:1px dashed var(--g-line2);border-radius:14px;padding:16px;
  background:rgba(9,16,30,.55);transition:.24s;
}
.tjh-slot:hover{border-color:rgba(34,211,238,.55);background:rgba(34,211,238,.05)}
.tjh-slot .t{font-size:13.4px;font-weight:700;color:#dbe8fb}
.tjh-slot .t em{font-style:normal;font-family:var(--g-mono);font-size:10.5px;color:var(--g-dim);margin-left:6px}
.tjh-slot .d{font-size:11.8px;color:var(--g-dim);margin-top:6px;line-height:1.6;min-height:34px}
.tjh-slot .pick{margin-top:12px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tjh-slot input[type=file]{display:none}
.tjh-slot .thmb{
  width:74px;height:56px;border-radius:9px;object-fit:cover;border:1px solid var(--g-line2);background:#0b1526;
}
.tjh-slot .meta{font-size:11.5px;color:var(--g-muted);line-height:1.55;flex:1;min-width:100px;word-break:break-all}
.tjh-slot.done{border-style:solid;border-color:rgba(74,222,159,.5)}
.tjh-slot .okmark{position:absolute;top:12px;right:12px;font-size:11px;font-weight:700;color:#7ff0b5}

/* 礼包 */
.tjh-benefits{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tjh-ben{
  display:flex;justify-content:space-between;gap:14px;align-items:center;
  padding:14px 16px;border-radius:12px;border:1px solid var(--g-line);background:rgba(9,16,30,.6);
}
.tjh-ben .n{font-size:13.4px;color:#d5e4fa;line-height:1.5}
.tjh-ben .n small{display:block;color:var(--g-dim);font-size:11.4px;margin-top:4px}
.tjh-ben .v{font-family:var(--g-mono);font-size:14px;color:#8fe6f5;white-space:nowrap}
.tjh-ben .v b{display:block;font-size:10.5px;color:var(--g-dim);font-weight:400;text-align:right}
.tjh-ben .get{cursor:pointer;font-size:12.5px;font-weight:700;padding:7px 13px;border-radius:9px;border:1px solid rgba(34,211,238,.45);
  background:rgba(34,211,238,.12);color:#8fe6f5;white-space:nowrap;transition:.2s}
.tjh-ben .get:hover{background:rgba(34,211,238,.22)}
.tjh-ben .get:disabled{opacity:.55;cursor:default;border-color:var(--g-line);background:rgba(148,163,184,.1);color:#93a8c9}

/* 退款卡 */
.tjh-refund{
  border:1px solid rgba(251,191,36,.4);border-radius:16px;padding:22px;
  background:linear-gradient(160deg,rgba(60,45,16,.42),rgba(12,17,28,.85));
}
.tjh-refund h5{font-size:15.5px;font-weight:800;display:flex;align-items:center;gap:9px;color:#fbe1a3}
.tjh-refund .desc{font-size:12.9px;color:#c9b98d;margin-top:10px;line-height:1.75}
.tjh-refund .calc{margin-top:16px;display:grid;gap:9px;font-size:13.4px;color:#e2ede0}
.tjh-refund .calc div{display:flex;justify-content:space-between;gap:12px}
.tjh-refund .calc .sum{border-top:1px dashed rgba(251,191,36,.4);padding-top:11px;margin-top:3px;font-weight:700}
.tjh-refund .calc .sum b{font-family:var(--g-mono);font-size:19px;color:#ffe08a}
.tjh-refund .acts{margin-top:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* 收起态：只显示两条备注与「申请退款」按钮 */
.tjh-refund.compact{padding:18px 22px}
.tjh-refund.compact .acts{margin-top:14px}
.tjh-refund-notes{margin:12px 0 0;padding:0;list-style:none;font-size:12.9px;color:#c9b98d;line-height:1.9}
.tjh-refund-notes li{padding-left:4px}
.tjh-refund.compact .tjh-refund-notes{margin-bottom:2px}

/* 预警推送记录表 */
.tjh-alerts{font-size:13px}
.tjh-alerts th{font-size:12px}
.tjh-alerts td{vertical-align:top}
.tjh-alerts td:nth-child(3){color:#c7d8f2;max-width:340px}

/* 详情抽屉 */
.tjh-drawer{
  margin-top:16px;border:1px solid var(--g-line2);border-radius:15px;padding:20px;background:rgba(6,11,22,.9);
  animation:tjhFade .26s ease;
}
.tjh-drawer .dh{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.tjh-drawer .dh b{font-size:15px}
.tjh-drawer .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 22px;font-size:13.3px}
.tjh-drawer .grid div{display:flex;gap:10px}
.tjh-drawer .grid span:first-child{color:var(--g-dim);flex:0 0 auto;min-width:80px}
.tjh-drawer .grid span:last-child{color:#c7d8f2;word-break:break-all}
.tjh-docgrid{margin-top:14px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.tjh-docgrid figure{margin:0;text-align:center}
.tjh-docgrid img,.tjh-docgrid .ph{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;border:1px solid var(--g-line2);background:#0b1526;display:block;
}
.tjh-docgrid .ph{display:grid;place-items:center;font-size:11px;color:var(--g-dim)}
.tjh-docgrid figcaption{font-size:10.8px;color:var(--g-dim);margin-top:6px;line-height:1.4}

/* 登录日志动作标记 */
.tjh-logline{display:inline-flex;align-items:center;gap:6px}
.tjh-logline i{width:6px;height:6px;border-radius:50%;background:var(--g-ok)}
.tjh-logline.fail i{background:var(--g-err)}

/* 手机端确认扫码（由二维码链接落地触发） */
.tjh-mobile-cf{max-width:420px;margin:0 auto;padding:18px 4px 8px}
.tjh-mobile-cf h3{letter-spacing:-.01em}

/* Toast */
.tjh-toasts{position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}
.tjh-toast{
  padding:12px 22px;border-radius:12px;font-size:13.6px;font-weight:600;
  background:rgba(9,16,30,.97);border:1px solid var(--g-line2);color:#e6f0ff;
  box-shadow:0 20px 44px -22px rgba(0,0,0,1);animation:tjhDrop .3s ease;
}
.tjh-toast.ok{border-color:rgba(74,222,159,.6);color:#b6ffd9}
.tjh-toast.err{border-color:rgba(251,113,133,.6);color:#ffc0c9}
@keyframes tjhDrop{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

/* 站点内的「扫码进入」区块 */
.tjh-entry{
  border:1px solid var(--g-line-2,var(--g-line2));border-radius:24px;padding:42px 40px;position:relative;overflow:hidden;
  background:linear-gradient(140deg,rgba(20,36,64,.9),rgba(8,14,26,.94));
  display:grid;grid-template-columns:1.1fr auto;gap:38px;align-items:center;
}
.tjh-entry::before{
  content:"";position:absolute;inset:-40%;pointer-events:none;
  background:radial-gradient(circle at 22% 24%,rgba(34,211,238,.16),transparent 46%),
             radial-gradient(circle at 78% 78%,rgba(124,92,255,.18),transparent 48%);
}
.tjh-entry .in{position:relative}
.tjh-entry h2{font-size:clamp(23px,2.7vw,34px);font-weight:800;line-height:1.3;letter-spacing:-.01em}
.tjh-entry h2 em{font-style:normal;background:var(--g-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tjh-entry p{color:var(--g-muted);margin-top:14px;font-size:15px;max-width:560px}
.tjh-entry .qrs{position:relative;display:flex;gap:18px;align-items:center}
.tjh-entry .qrcell{text-align:center}
.tjh-entry .qrcell .box{background:#fff;padding:11px;border-radius:14px;box-shadow:0 18px 42px -20px rgba(0,0,0,.95)}
.tjh-entry .qrcell small{display:block;margin-top:10px;font-size:11.6px;color:var(--g-muted);font-family:var(--g-mono);letter-spacing:.06em}
.tjh-entry .btn-row2{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.tjh-entry .ebtn{
  cursor:pointer;display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-size:14.5px;font-weight:700;
  padding:13px 24px;border-radius:12px;transition:.26s;border:1px solid transparent;
  background:var(--g-grad);color:#03101f;box-shadow:0 14px 34px -16px rgba(47,124,246,1);
}
.tjh-entry .ebtn.g{border-color:var(--g-line2);background:rgba(15,25,45,.6);color:var(--g-txt);box-shadow:none}
.tjh-entry .ebtn:hover{transform:translateY(-3px)}

/* 响应式 */
@media(max-width:1024px){
  .nav-login{padding:9px 13px;font-size:13px}
  .lang-switch .lang-opt{padding:5px 9px;font-size:11.5px}
  .tjh-gate{grid-template-columns:1fr}
  .tjh-gate-side{border-right:0;border-bottom:1px solid var(--g-line);padding:34px 30px}
  .tjh-gate-side h3{font-size:22px}
  .tjh-feat{display:none}
  .tjh-gate-main{padding:30px}
  .tjh-stats{grid-template-columns:repeat(2,1fr)}
  .tjh-grid2{grid-template-columns:1fr}
  .tjh-slots{grid-template-columns:repeat(2,1fr)}
  .tjh-docgrid{grid-template-columns:repeat(3,1fr)}
  .tjh-entry{grid-template-columns:1fr;padding:32px 26px}
  .tjh-entry .qrs{justify-content:flex-start}
}
@media(max-width:680px){
  .tjh-shell,.tjh-shell.wide{width:100%;border-radius:16px}
  .tjh-mask{padding:14px 10px 40px}
  .tjh-gate-side{padding:26px 22px}
  .tjh-gate-side h3{font-size:19px}
  .tjh-gate-main{padding:24px 20px}
  .tjh-tabs button{margin-right:14px;font-size:13.5px}
  .tjh-row2,.tjh-row2-3{grid-template-columns:1fr}
  .tjh-stats{grid-template-columns:1fr 1fr}
  .tjh-slots,.tjh-benefits,.tjh-drawer .grid{grid-template-columns:1fr}
  .tjh-docgrid{grid-template-columns:repeat(2,1fr)}
  .tjh-appbody{padding:20px 16px 40px}
  .tjh-top{padding:13px 16px}
  .tjh-qrwrap{gap:18px}
  .tjh-tablewrap{overflow-x:auto}
  .tjh-table{min-width:720px}
  .tjh-float{right:14px;bottom:18px}
  .tjh-float button{padding:11px 16px;font-size:12.5px}
}

/* ---------------- 统一管理端登录（两套系统打通：官网 / 公安端平台 / 小程序同一套账号） ---------------- */
.tjh-shell:has(.tjh-ag){width:min(520px,94vw)}
.tjh-ag{padding:34px 32px 26px;background:linear-gradient(168deg,rgba(18,30,54,.86),rgba(8,14,26,.95))}
.tjh-ag-card{text-align:center}
.tjh-ag-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}
.tjh-ag-btxt{text-align:left;display:flex;flex-direction:column;line-height:1.25}
.tjh-ag-btxt b{font-size:14px;color:#e9f0ff;letter-spacing:.02em}
.tjh-ag-btxt span{font-family:var(--mono,monospace);font-size:9.5px;color:#5f7396;letter-spacing:.2em}
.tjh-ag h3{font-size:21px;font-weight:800;letter-spacing:.06em;
  background:linear-gradient(115deg,#22d3ee 0%,#2f7cf6 45%,#7c5cff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.tjh-ag-sub{margin:9px 0 22px;font-size:11.5px;line-height:1.75;color:#7f95b8}
.tjh-ag .tjh-field{text-align:left}
.tjh-ag-err{min-height:17px;margin:2px 0 10px;font-size:12.5px;color:#f0605c;text-align:left}
.tjh-ag-lock{margin:0 0 14px;padding:9px 12px;border-radius:9px;font-size:12.5px;text-align:left;
  color:#f5c877;background:rgba(230,162,60,.1);border:1px solid rgba(230,162,60,.32)}
.tjh-ag .tjh-btn:disabled{opacity:.5;cursor:not-allowed}
.tjh-ag-tip{margin-top:16px;padding:12px 14px;border-radius:10px;text-align:left;
  font-size:11.5px;line-height:1.85;color:#7f95b8;background:rgba(10,18,34,.6);border:1px dashed rgba(96,148,225,.22)}
.tjh-ag-tip b{color:#a9c6ef}
.tjh-ag-tools{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}
.tjh-ag-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:18px;padding-top:14px;border-top:1px solid rgba(96,148,225,.14)}
.tjh-ag-jump{margin-top:10px}
.tjh-ag-idcard{margin:6px 0 14px;border-radius:12px;overflow:hidden;border:1px solid rgba(96,148,225,.2);text-align:left}
.tjh-ag-idcard .r{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;font-size:12.5px}
.tjh-ag-idcard .r+.r{border-top:1px solid rgba(96,148,225,.1)}
.tjh-ag-idcard .r span{color:#6d84a8}
.tjh-ag-idcard .r b{color:#e9f0ff}

/* —— 官网后台第二步：双因子（绑定二维码 + 6 位动态口令）—— */
.tjh-ag-mfa{margin:6px 0 2px;text-align:left}
.tjh-ag-qr{display:block;width:190px;height:190px;margin:0 auto 12px;padding:6px;border-radius:10px;
  background:#fff;image-rendering:pixelated}
.tjh-ag-mfa-tip{margin:8px 0;font-size:11.5px;line-height:1.8;color:#7f95b8}
.tjh-ag-mfa-tip code{font-family:var(--mono,monospace);font-size:11.5px;color:#a9c6ef}
.tjh-ag-sec{display:flex;align-items:center;gap:8px;margin:8px 0 4px;padding:9px 12px;border-radius:9px;
  background:rgba(10,18,34,.75);border:1px solid rgba(96,148,225,.24)}
.tjh-ag-sec code{flex:1;font-family:var(--mono,monospace);font-size:12px;letter-spacing:.08em;
  color:#e9f0ff;word-break:break-all}
.tjh-ag-mfa-warn{margin:10px 0 4px;padding:9px 12px;border-radius:9px;font-size:11.5px;line-height:1.75;
  color:#f5c877;background:rgba(230,162,60,.1);border:1px solid rgba(230,162,60,.32)}
.tjh-ag-wait{padding:18px 0;font-size:12.5px;color:#7f95b8;text-align:center}
.tjh-ag-mfa .tjh-field{margin-top:10px}
@media(max-width:680px){
  .tjh-ag{padding:26px 18px 20px}
  .tjh-ag h3{font-size:18.5px}
}

/* —— 移动端导航收纳（2026-10-07 体检：≤560px 顶栏放不下两个登录按钮，右侧被截断）——
   做法：≤680 顶栏只留「语言开关 + 汉堡」，两个登录入口收进汉堡菜单（.menu-auth）；
   ≥681 恢复顶栏按钮。桌面端 .menu 常显时 .menu-auth 永远隐藏，不影响原布局。 */
.menu .menu-auth{display:none}
.menu.open .menu-auth{display:flex;flex-direction:column;gap:12px;margin-top:12px;padding-top:14px;border-top:1px solid var(--line)}
.menu.open .menu-auth .nav-login{display:inline-flex;width:100%;justify-content:center}
@media(max-width:680px){
  .nav-actions .nav-login{display:none}
  .nav-in{gap:12px}
  .brand{gap:8px}
  .brand svg{width:34px;height:34px}
  .brand-txt b{font-size:14.5px;letter-spacing:.04em}
  .brand-txt span{display:none}
  .lang-switch{gap:3px;padding:3px}
  .lang-switch .lang-opt{padding:6px 9px;font-size:11.5px}
}
