/* Styles reused from CQ经营管控数据总览.html; no embedded business data. */

:root { --ink:#1F3540; --muted:#6B8291; --muted2:#8AA0AD; --line:#E8EDEF; --line2:#D5DEE3;
  --headbg:#EDF2F4; --accent:#2C6E8A; --warn:#B7791F; --neg:#B0413E; --pos:#2F7D4F;
  --z:#8C5A2E; --l:#33667A; }
* { box-sizing:border-box; }
* { -webkit-tap-highlight-color: transparent; }
.tbl-wrap, .table-scroll { scrollbar-width:none; -ms-overflow-style:none; }
.tbl-wrap::-webkit-scrollbar, .table-scroll::-webkit-scrollbar { display:none; }
html, body { -webkit-text-size-adjust:100%; text-size-adjust:100%; margin:0; padding:0; height:100%; overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:#F4F6F7; color:var(--ink); font-size:13.5px; }
.wrap { height:100%; }
#scrollArea { height:100%; overflow-y:auto; -webkit-overflow-scrolling:touch; position:relative; }
#scrollInner { max-width:1100px; margin:0 auto; padding:0 0 60px; }
body.sheet-open #scrollArea { overflow:hidden; }
@media print { html, body { overflow:visible; height:auto; } #scrollArea { overflow:visible; height:auto; } }
.hero { background:#20404F; color:#fff; padding:16px 18px 12px; }
.hero h1 { margin:0; font-size:19px; }
.hero .sub { color:#A9C0CC; font-size:12.5px; margin-top:3px; }
.fbar { background:#274B5C; color:#DCE7EC; padding:9px 18px 4px; position:relative; }
.fsum { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; margin-bottom:6px; }
.fsum b { font-weight:700; }
.hbtn { background:transparent; border:1px solid #557A8C; color:#DCE7EC; padding:5px 12px; border-radius:5px; font-size:12.5px; cursor:pointer; }
.hbtn.gold { border-color:#C9A85C; color:#EBD9A8; }
#filterRows { position:absolute; top:100%; left:0; right:0; z-index:720; background:#274B5C; padding:4px 18px 12px; box-shadow:0 10px 22px rgba(15,40,52,.35); border-top:1px solid rgba(255,255,255,.08); }
.frow { display:flex; align-items:flex-start; gap:6px; margin-bottom:7px; flex-wrap:wrap; }
.flabel { width:52px; font-size:11.5px; color:#9FB6C1; flex-shrink:0; padding-top:6px; }
.fgrp { display:flex; flex-wrap:wrap; gap:6px; flex:1; min-width:0; }
.fdate { display:flex; align-items:center; gap:6px; flex-wrap:nowrap; }
.fbtn { background:transparent; border:1px solid #3A6478; color:#B9CCD6; padding:4px 11px; border-radius:4px; font-size:12px; cursor:pointer; white-space:nowrap; }
.fbtn.active { background:#fff; border-color:#fff; color:#20404F; font-weight:600; }
.finput { background:transparent; border:1px solid #3A6478; color:#D8E4EA; padding:4px 8px; border-radius:4px; font-size:12px; width:106px; text-align:center; }
.finput.wide { width:150px; text-align:left; }
.tabs { display:flex; background:#fff; border-bottom:1px solid var(--line2); position:sticky; top:0; z-index:20; }
.tab { flex:1; border:none; background:#F0F3F4; color:#5A7381; padding:11px 2px; white-space:nowrap; font-size:13.5px; cursor:pointer; border-right:1px solid var(--line2); }
.tab:last-child { border-right:none; }
.tab.active { background:#20404F; color:#fff; font-weight:600; }
.page { display:none; padding:12px 12px 0; }
.page.active { display:block; min-height:100vh; }
.sec { background:#fff; border:1px solid var(--line); border-radius:8px; margin-bottom:14px; overflow:hidden; }
.sec-head { display:flex; align-items:center; gap:9px; padding:12px 14px; border-bottom:1px solid var(--line); }
.sec-num { background:#20404F; color:#fff; font-size:12px; font-weight:700; padding:2px 8px; border-radius:4px; }
.sec-title { font-weight:700; font-size:14.5px; }
.sec-body { padding:12px 14px 14px; }
.kpi-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:10px; margin:12px 12px 14px; }
.kpi { background:#fff; border:1px solid var(--line); border-left:4px solid var(--ink); border-radius:6px; padding:7px 8px 6px; }
.kpi-label { font-size:12px; color:var(--muted); letter-spacing:.2px; }
.kpi-val { font-size:15px; font-weight:800; letter-spacing:-.3px; line-height:1.2; }
@media(max-width:640px){
  .kpi-strip { grid-template-columns:1fr 1fr; gap:8px; }
  .kpi { padding:9px 12px 10px; border-left-width:3px; }
  .kpi-val { font-size:21px; margin-top:3px; }
  .kpi-label { font-size:11.5px; }
}
.tbl-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
table { width:100%; border-collapse:collapse; font-size:12.5px; min-width:560px; }
th { background:var(--headbg); padding:8px 10px; text-align:center; color:var(--muted2); font-weight:600; border-bottom:1px solid var(--line2); white-space:nowrap; line-height:1.4; }
td.left { text-align:left; padding-left:12px; }
th.left { text-align:center; padding-left:12px; }
th.ctr, td.ctr { text-align:center; }
td { padding:7px 10px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; line-height:1.4; }
tr.total-row td { background:#F4F7F9; font-weight:700; padding-top:8px; padding-bottom:8px; }
.dim { color:var(--muted2); }
.mono { font-variant-numeric:tabular-nums; }
.z { color:var(--z); } .l { color:var(--l); }
.txt-warn { color:var(--warn); font-weight:700; }
.txt-good { color:#2E7D5B; font-weight:700; }
.dev-tip { font-size:11.5px; margin-top:6px; padding:7px 9px; background:#F3F7F9; border-left:3px solid var(--accent); border-radius:0 6px 6px 0; line-height:1.75; }
#page-all .sumrow td { background:#F2F6F8 !important; border-top:2px solid var(--line2); }
#page-all table td { transition:background .15s; }
#page-all .pvbar { padding-bottom:8px; }

.ovchart { display:flex; align-items:center; gap:14px; }
.ovlg { flex:1; display:flex; flex-direction:column; gap:6px; }
.ovlgi { display:flex; align-items:center; gap:6px; font-size:12.5px; }
.ovlgi b { margin-left:auto; font-size:13px; }
.ovdot { width:9px; height:9px; border-radius:3px; flex:none; }
.ovgb { display:flex; flex-direction:column; gap:9px; }
.ovgbrow { display:flex; align-items:center; gap:8px; }
.ovgbl { width:44px; font-size:11.5px; color:#5A7381; flex:none; }
.ovgbbars { flex:1; display:flex; flex-direction:column; gap:3px; }
.ovgbitem { display:flex; align-items:center; gap:6px; }
.ovgbtrack { flex:1; height:9px; background:#EDF1F3; border-radius:3px; overflow:hidden; }
.ovgbfill { display:block; height:100%; border-radius:3px; }
.ovgbv { width:34px; text-align:right; font-size:10.5px; color:#7C97A5; flex:none; }
.ovtrend { width:100%; }

.ovrank { display:flex; flex-direction:column; gap:11px; }
.ovrk .ovrkt { display:flex; align-items:baseline; gap:7px; }
.ovrkn { font-size:13px; font-weight:700; }
.ovrkv { font-size:14px; font-weight:800; letter-spacing:-.3px; margin-left:auto; }
.ovrkp { font-size:11px; color:#7C97A5; width:34px; text-align:right; }
.ovrktrack { display:block; height:12px; background:#EDF1F3; border-radius:4px; overflow:hidden; margin-top:4px; }
.ovrkfill { display:block; height:100%; border-radius:4px; }
.ovrkg { font-size:10.5px; color:#9FB2BC; margin-top:3px; }
.ovrkg.lead { color:#2E7D5B; font-weight:600; }
.ovrc { display:flex; flex-direction:column; gap:13px; }
.ovrch { display:flex; align-items:baseline; gap:7px; }
.ovrch b { font-size:12.5px; }
.ovrcbody { position:relative; margin-top:5px; }
.ovrcbase { position:absolute; top:0; bottom:0; width:2px; background:#C9A227; opacity:.75; z-index:2; margin-left:52px; }
.ovrcline { display:flex; align-items:center; gap:7px; padding:2px 0; }
.ovrcnm { width:45px; font-size:11.5px; flex:none; }
.ovrctrack { flex:1; height:11px; background:#EDF1F3; border-radius:3px; overflow:hidden; }
.ovrcfill { display:block; height:100%; background:#4E8CA8; border-radius:3px; }
.ovrcfill.good { background:#2E7D5B; } .ovrcfill.bad { background:var(--warn); }
.ovrcv { width:36px; text-align:right; font-size:11.5px; font-weight:700; color:#5A7381; flex:none; }
.ovrcv.good { color:#2E7D5B; } .ovrcv.bad { color:var(--warn); }
.ovalerts { display:flex; flex-direction:column; gap:8px; }
.ovalert { display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.5; }
.ovaic { font-weight:800; flex:none; width:16px; text-align:center; }
.ovalert.up .ovaic { color:#2E7D5B; } .ovalert.down .ovaic { color:var(--warn); }
.ovtlg { display:flex; gap:12px; padding-top:4px; }
.ovtlg .ovlgi { font-size:11px; color:#7C97A5; display:flex; align-items:center; gap:4px; }

.kpigrid { display:flex; flex-direction:column; gap:14px; padding-top:12px; }
.kpiblk { border-top:1px solid var(--line); padding-top:10px; }
.kpiblk:first-child { border-top:none; padding-top:2px; }
.kpih { display:flex; align-items:baseline; gap:8px; }
.kpih b { font-size:13px; }
.kpiavg { font-size:10.5px; color:#9FB2BC; margin-left:auto; }
.kpibody { position:relative; margin-top:6px; }
.kpibase { position:absolute; top:0; bottom:0; width:2px; background:#C9A227; opacity:.7; z-index:2; margin-left:48px; }
.kpiline { display:flex; align-items:center; gap:7px; padding:2.5px 0; }
.kpinm { width:41px; font-size:11.5px; color:#5A7381; flex:none; }
.kpitrack { flex:1; height:13px; background:#EDF1F3; border-radius:4px; overflow:hidden; }
.kpifill { display:block; height:100%; background:#4E8CA8; border-radius:4px; }
.kpifill.top { background:#2B5A6E; } .kpifill.bot { background:#9FC4D6; }
.kpiv { width:78px; text-align:right; font-size:12px; font-weight:700; color:#42606E; flex:none; }
.kpiv.top { color:#1F3A47; } .kpiv.bot { color:#8FA8B4; }
.kpifoot { font-size:10.5px; color:#9FB2BC; padding-top:5px; }

.ovsum { display:flex; align-items:baseline; gap:14px; background:#F2F6F8; border-radius:9px; padding:9px 12px; margin-bottom:10px; font-size:12px; color:#5A7381; }
.ovsum b { font-size:14px; color:#1F3A47; letter-spacing:-.3px; }
.speccard .card-h { display:flex; align-items:center; gap:8px; }
.scname { font-size:14.5px; font-weight:800; }
.scshare { font-size:11px; font-weight:700; color:#5A7381; background:#EDF1F3; border-radius:9px; padding:1px 8px; }
.scgo { margin-left:auto; border:none; background:transparent; color:var(--accent); font-size:12px; font-weight:700; padding:2px 0; }
.schero { display:flex; gap:8px; padding-bottom:4px; }
.schero > div { flex:1; background:#F7FAFB; border-radius:8px; padding:7px 9px; }
.schl { font-size:10.5px; color:#7C97A5; }
.schv { font-size:15px; font-weight:800; letter-spacing:-.3px; margin-top:1px; }
.scsec { font-size:11.5px; font-weight:700; color:#42606E; padding:11px 0 5px; border-top:1px solid var(--line); margin-top:9px; }
.scrow { display:flex; align-items:center; gap:6px; padding:2.5px 0; }
.scnm { width:56px; font-size:11.5px; flex:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sctrack { flex:1; height:11px; background:#EDF1F3; border-radius:3px; overflow:hidden; min-width:30px; }
.scfill { display:block; height:100%; background:#4E8CA8; border-radius:3px; }
.scfill.bad { background:var(--warn); }
.scv { width:66px; text-align:right; font-size:11.5px; font-weight:700; color:#1F3A47; flex:none; }
.scv2 { width:76px; text-align:right; font-size:10.5px; color:#7C97A5; flex:none; }
.scv2.bad { color:var(--warn); font-weight:700; }

#page-all .card { margin-bottom:10px; }
#page-all .card:last-child { margin-bottom:0; }
#page-all .card-b { padding-top:10px; }
.pvcap { font-size:11.5px; font-weight:700; color:#42606E; padding:11px 0 4px; }
.pvcap:first-of-type { padding-top:2px; }
#page-all .tbl-wrap + .pvcap { border-top:1px solid var(--line); margin-top:8px; }

.pvreset { display:flex; align-items:center; gap:8px; padding:0 0 7px; }
.pvreset .dim { font-size:11px; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvrst { border:1px solid var(--line2); background:#fff; color:#5A7381; border-radius:13px;
  padding:3px 12px; font-size:11.5px; font-weight:700; flex:none; }

.ovnote { font-size:10.5px; color:#8FA8B4; line-height:1.65; padding-top:9px; margin-top:8px; border-top:1px solid var(--line); }
.ovnote b { color:#5A7381; }
.ovtot { display:flex; gap:7px; }
.ovt1 { flex:1; background:var(--ink); border-radius:9px; padding:9px 10px; color:#fff; min-width:0; }
.ovtv { font-size:16px; font-weight:800; letter-spacing:-.4px; margin-top:1px; white-space:nowrap; }
.ovsplit { display:flex; gap:7px; margin-top:9px; }
.ovsp { flex:1; border:1px solid var(--line2); border-radius:9px; padding:7px 8px; cursor:pointer; min-width:0; }
.speccard .card-b { padding-top:9px; }
.schero { display:flex; gap:7px; padding-bottom:2px; }
.schero > div { flex:1; background:#F7FAFB; border-radius:8px; padding:6px 8px; min-width:0; }
.scsec { font-size:11.5px; font-weight:700; color:#42606E; padding:10px 0 4px; border-top:1px solid var(--line); margin-top:8px; }
.scrow { display:flex; align-items:center; gap:6px; padding:2px 0; }
.pvbar { padding-bottom:6px; }
.pvrow { display:flex; align-items:center; gap:8px; padding:2.5px 0; }

.ovtot { display:flex; gap:8px; }
.ovt1 { flex:1; background:var(--ink); border-radius:9px; padding:10px 11px; color:#fff; }
.ovtl { font-size:10.5px; color:#9FB6C2; }
.ovtv { font-size:17px; font-weight:800; letter-spacing:-.4px; margin-top:2px; }
.ovsplit { display:flex; gap:8px; margin-top:10px; }
.ovsp { flex:1; border:1px solid var(--line2); border-radius:9px; padding:8px 9px; cursor:pointer; min-width:0; }
.ovspn { font-size:12px; font-weight:700; display:flex; align-items:baseline; gap:5px; }
.ovspp { font-size:10px; color:#7C97A5; font-weight:600; }
.ovspv { font-size:13.5px; font-weight:800; letter-spacing:-.3px; margin-top:2px; white-space:nowrap; }
.ovspb { height:4px; background:#EDF1F3; border-radius:2px; margin-top:5px; overflow:hidden; }
.ovspb span { display:block; height:100%; background:var(--accent); border-radius:2px; }
.ovspd { font-size:10px; color:#8FA8B4; margin-top:4px; line-height:1.35; }

.ovtop { display:flex; gap:10px; }
.ovbig { flex:1; background:#F7FAFB; border-radius:9px; padding:9px 10px; }
.ovbl { font-size:11px; color:#7C97A5; }
.ovbv { font-size:18px; font-weight:800; letter-spacing:-.4px; margin-top:2px; }
.ovcards { display:flex; flex-direction:column; gap:9px; }
.ovcard { border:1px solid var(--line2); border-radius:11px; padding:11px 12px; cursor:pointer; }
.ovhd { font-size:13.5px; font-weight:800; display:flex; align-items:center; gap:7px; }
.ovshare { font-size:11px; font-weight:700; color:#5A7381; background:#EDF1F3; border-radius:9px; padding:1px 7px; }
.ovamt { font-size:20px; font-weight:800; letter-spacing:-.5px; margin-top:3px; }
.ovsub { font-size:11.5px; color:#7C97A5; margin-top:1px; }
.ovmini { display:flex; gap:12px; font-size:11.5px; font-weight:600; color:#5A7381; margin-top:6px; }
.ovdoc { font-size:11px; color:#9FB2BC; margin-top:4px; }
.ovmetric { padding:6px 0 10px; }
.ovmt { font-size:12px; font-weight:700; color:#5A7381; padding-bottom:4px; }
.ovrow { display:flex; align-items:center; gap:8px; padding:3px 0; }
.ovnm { width:44px; font-size:12px; flex:none; }
.ovtrack { flex:1; height:14px; background:#EDF1F3; border-radius:4px; overflow:hidden; }
.ovfill { display:block; height:100%; background:var(--accent); border-radius:4px; }
.ovval { width:86px; text-align:right; font-size:12px; font-weight:700; flex:none; }

.specbar { display:flex; gap:0; background:var(--ink); padding:0 8px; overflow-x:auto;
  position:sticky; top:0; z-index:30; box-shadow:0 1px 0 rgba(255,255,255,.06); }
.specbar .sptab { flex:none; background:transparent; border:none; color:#9FB6C2; font-size:14px; font-weight:700;
  padding:11px 16px 10px; border-bottom:3px solid transparent; display:flex; align-items:center; gap:6px; }
.specbar .sptab.active { color:#fff; border-bottom-color:#7FC4E8; }
.specbar .sptab .spn { font-size:11px; font-weight:400; color:#7E97A5; background:rgba(255,255,255,.10);
  border-radius:9px; padding:1px 7px; }
.specbar .sptab.active .spn { color:#DCEAF2; background:rgba(255,255,255,.18); }

.bpills { display:flex; flex-wrap:wrap; gap:6px; padding:0 0 10px; }
.bpills .bpill { flex:none; background:#fff; border:1px solid var(--line2); border-radius:999px;
  padding:6px 13px; font-size:12.5px; color:var(--muted); font-weight:600; }
.bpills .bpill.active { background:var(--accent); border-color:var(--accent); color:#fff; }

.dchips { display:flex; flex-wrap:wrap; gap:6px; padding:0 0 10px; }
.dchip { border:1px solid var(--line2); background:#fff; color:#5A7381; border-radius:14px;
  padding:4px 12px; font-size:12px; font-weight:600; line-height:1.5; }
.dchip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.anrow.hot { background:rgba(43,90,110,.06); border-radius:7px; }

.bcards { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.bcard { background:#fff; border:1px solid var(--line2); border-radius:11px; padding:11px 12px 9px; position:relative; }
.bcard.sel { border-color:var(--accent); box-shadow:0 0 0 2px rgba(43,90,110,.12); }
.bcard .bt { font-size:11.5px; color:#7C97A5; }
.bcard .bv { font-size:21px; font-weight:800; letter-spacing:-.4px; margin-top:2px; line-height:1.15; }
.bcard .bd { font-size:11px; margin-top:1px; font-weight:700; }
.bcard .bd.up { color:#2E7D5B; } .bcard .bd.down { color:var(--warn); } .bcard .bd.flat { color:#98AEB9; font-weight:400; }
.bcard svg { display:block; margin-top:5px; }

.fn-row { padding:7px 0 8px; border-bottom:1px solid var(--line); }
.fn-row:last-of-type { border-bottom:none; }
.fn-top { display:flex; align-items:baseline; gap:6px; }
.fn-ind { flex:none; color:#C3D0D6; font-size:11px; letter-spacing:-1px; white-space:pre; }
.fn-name { font-size:13px; font-weight:700; }
.fn-conv { font-size:11px; font-weight:700; color:#5A7381; background:#EDF1F3; border-radius:4px; padding:1px 5px; }
.fn-conv.bad { color:#fff; background:var(--warn); }
.fn-num { margin-left:auto; font-size:12.5px; font-weight:700; flex:none; }
.fn-track { position:relative; height:16px; border-radius:5px; background:#F2F5F6; overflow:hidden; margin-top:5px; }
.fn-par { position:absolute; left:0; top:0; bottom:0; background:#DCE5E9; }
.fn-me { position:absolute; left:0; top:0; bottom:0; background:var(--accent); border-radius:5px 0 0 5px; }
.fn-me.bad { background:var(--warn); }
.fn-lost { position:absolute; top:0; bottom:0; font-size:9.5px; color:#8FA3AD; line-height:16px; padding-left:5px; }
.fbar2 { display:flex; align-items:center; gap:8px; padding:5px 0; }
.fbar2 .fn { width:96px; font-size:12.5px; flex:none; }
.fbar2 .ft { flex:1; height:19px; background:#EDF1F3; border-radius:4px; overflow:hidden; }
.fbar2 .ff { height:100%; background:var(--accent); border-radius:4px; }
.fbar2 .ff.warnbg { background:var(--warn); }
.fbar2 .fv { width:92px; text-align:right; font-size:12px; flex:none; }
.anrow { display:flex; align-items:center; gap:8px; padding:7px 2px; border-bottom:1px solid var(--line); }
.anrow .aw { flex:1; min-width:0; }
.anrow .an { font-size:12.5px; font-weight:600; }
.anrow .as { font-size:11px; color:#7C97A5; margin-top:1px; }
.anrow .av { font-size:13px; font-weight:800; flex:none; }
.badge-lo { color:var(--warn); } .badge-hi { color:#2E7D5B; }

.fn-row { padding:7px 0 8px; border-bottom:1px solid var(--line); }
.fn-row:last-of-type { border-bottom:none; }
.fn-top { display:flex; align-items:baseline; gap:6px; }
.fn-ind { flex:none; color:#C3D0D6; font-size:11px; letter-spacing:-1px; white-space:pre; }
.fn-name { font-size:13px; font-weight:700; }
.fn-conv { font-size:11px; font-weight:700; color:#5A7381; background:#EDF1F3; border-radius:4px; padding:1px 5px; }
.fn-conv.bad { color:#fff; background:var(--warn); }
.fn-num { margin-left:auto; font-size:12.5px; font-weight:700; flex:none; }
.fn-track { position:relative; height:16px; border-radius:5px; background:#F2F5F6; overflow:hidden; margin-top:5px; }
.fn-par { position:absolute; left:0; top:0; bottom:0; background:#DCE5E9; }
.fn-me { position:absolute; left:0; top:0; bottom:0; background:var(--accent); border-radius:5px 0 0 5px; }
.fn-me.bad { background:var(--warn); }
.fn-lost { position:absolute; top:0; bottom:0; font-size:9.5px; color:#8FA3AD; line-height:16px; padding-left:5px; }

.seg { display:inline-flex; background:#EDF1F3; border-radius:9px; padding:2.5px; gap:0; flex-wrap:wrap; }
.seg .sbtn { border:none; background:transparent; color:#5A7381; font-size:12.5px; padding:6px 12px; border-radius:7px; white-space:nowrap; }
.seg .sbtn.active { background:var(--ink); color:#fff; font-weight:700; }
.pvbar { display:flex; flex-direction:column; gap:7px; padding:2px 0 10px; }
.pvrow { display:flex; align-items:center; gap:9px; padding:3px 0; }
.pvlabel { font-size:11.5px; font-weight:700; color:#42606E; min-width:40px; width:40px; flex:none;
  text-align:center; background:#E4EBEE; border-radius:6px; padding:6px 0; line-height:1.15;
  letter-spacing:.5px; white-space:nowrap; }
table.freeze th:first-child, table.freeze td:first-child { position:sticky; left:0; background:#fff; z-index:2; box-shadow:1px 0 0 var(--line2); }
table.freeze th:first-child { background:var(--headbg); z-index:3; }
table.freeze thead tr + tr th:first-child { left:auto !important; box-shadow:none !important; }
.table-scroll { max-height:440px; overflow-y:auto; }
.table-scroll thead tr:first-child th { position:sticky; top:0; z-index:4; }
.table-scroll thead tr + tr th { position:sticky; top:33px; z-index:4; box-shadow:0 -1px 0 var(--headbg); }
.table-scroll table.freeze thead tr:first-child th:first-child { z-index:6; }
.table-scroll table.freeze th:first-child { z-index:5; }
.row-click { cursor:pointer; }
.name-cell { font-weight:600; }
.caret { display:inline-block; width:14px; color:var(--muted2); }
.lbtn { background:#fff; border:1px solid var(--line2); color:var(--accent); padding:5px 12px; border-radius:5px; font-size:12.5px; cursor:pointer; }
.sortable { cursor:pointer; }
.sortable.on { color:var(--ink); }
.bp { display:inline-block; padding:1px 8px; border-radius:9px; font-size:11.5px; font-weight:600; }
.bp-full { background:#E4F2E8; color:#2F7D4F; }
.bp-mid { background:#FBF3D9; color:#8A6A17; }
.bp-early { background:#F9E3E1; color:#A13A36; }
td.pd-sel { background:#FFF6E0 !important; font-weight:700; }
.pd-chip { background:#FFFBEF; border:1px solid #EAD9A8; border-radius:6px; padding:5px 9px; display:inline-block; color:var(--ink); animation:pdIn .15s ease-out; }
.pd-sheet-mask { position:fixed; inset:0; background:rgba(20,40,50,.45); z-index:800; display:none; opacity:0; transition:opacity .2s; }
.pd-sheet-mask.show { display:block; opacity:1; }
.pd-sheet { position:fixed; left:0; right:0; bottom:0; height:76vh; overflow-y:auto; overscroll-behavior:contain; background:#fff; border-radius:14px 14px 0 0; padding:8px 14px 18px; box-shadow:0 -6px 24px rgba(21,58,74,.18); transform:translateY(100%); transition:transform .24s ease-out; font-size:12px; }
.pd-sheet-mask.show .pd-sheet { transform:none; }
.pd-grip { width:38px; height:4px; border-radius:2px; background:#D5DEE3; margin:2px auto 10px; }
body.sheet-open { overflow:hidden; }
@keyframes pdIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { .pd-sheet, .pd-sheet-mask, .pd-chip { transition:none; animation:none; } }
.zdp-mask { position:fixed; inset:0; background:rgba(20,40,50,.45); z-index:900; display:flex; align-items:center; justify-content:center; }
.zdp { cursor:pointer; }
.plink { border-bottom:1px dotted var(--accent); cursor:pointer; }
.zdp-panel { background:#fff; border-radius:10px; padding:12px 14px 14px; width:292px; color:var(--ink); box-shadow:0 8px 28px rgba(21,58,74,.25); }
.zdp-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.zdp-nav { border:1px solid var(--line2); background:#fff; border-radius:5px; width:28px; height:28px; cursor:pointer; color:var(--accent); font-size:14px; }
.zdp-title { font-weight:700; font-size:14px; }
.zdp-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
.zdp-wd { font-size:11px; color:var(--muted2); padding:3px 0; }
.zdp-d { border:none; background:#fff; border-radius:5px; padding:6px 0; font-size:12.5px; cursor:pointer; color:var(--ink); }
.zdp-d:hover { background:#EDF2F4; }
.zdp-d.out { color:#C3CFD6; }
.zdp-d.today { outline:1.5px solid var(--accent); outline-offset:-1.5px; }
.zdp-d.sel { background:#20404F; color:#fff; font-weight:700; }
.zdp-foot { display:flex; justify-content:space-between; margin-top:9px; }
.upd-mask { position:fixed; inset:0; background:rgba(20,40,50,.45); z-index:850; display:none; }
.upd-mask.show { display:block; }
.upd-sheet { position:fixed; left:0; right:0; bottom:0; max-height:86vh; overflow-y:auto; overscroll-behavior:contain; background:#fff; border-radius:14px 14px 0 0; padding:10px 16px 20px; box-shadow:0 -6px 24px rgba(21,58,74,.2); transform:translateY(100%); transition:transform .24s; }
.upd-mask.show .upd-sheet { transform:none; }
.upd-err { background:#F9E3E1; color:#A13A36; border-radius:6px; padding:8px 10px; font-size:12.5px; margin-top:8px; display:none; }
.upd-ok { background:#E4F2E8; color:#2F7D4F; border-radius:6px; padding:8px 10px; font-size:12.5px; margin-top:8px; display:none; white-space:pre-line; }
.back-top { position:fixed; right:14px; bottom:18px; z-index:120; width:40px; height:40px; border-radius:50%; border:none; background:#20404F; color:#fff; font-size:16px; cursor:pointer; box-shadow:0 4px 12px rgba(21,58,74,.3); display:none; }
#appErr { position:sticky; top:0; z-index:999; background:#7E2B27; color:#fff; padding:8px 14px; font-size:12.5px; display:none; }
@media print {
  .fbar, .tabs, .back-top, .hbtn { display:none !important; }
  .hero { background:#fff !important; color:#000 !important; }
  .table-scroll { max-height:none !important; overflow:visible !important; }
  .sec { break-inside:avoid; }
}

.dtbl { border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.dth, .dtr { display:flex; align-items:center; font-size:11px; }
.dth { background:#F2F6F8; color:#7C97A5; font-weight:700; padding:5px 8px; }
.dtr { padding:6px 8px; border-top:1px solid var(--line); font-size:11.5px; }
.dtr:nth-child(even) { background:#FBFCFD; }
.dc1 { width:52px; flex:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dc2 { width:64px; flex:none; text-align:right; font-weight:700; }
.dc3 { flex:1; display:flex; align-items:center; gap:5px; padding-left:8px; min-width:52px; }
.dc3 .dbar { flex:1; height:6px; background:#EDF1F3; border-radius:3px; overflow:hidden; min-width:20px; }
.dc3 .dbar i { display:block; height:100%; background:#4E8CA8; border-radius:3px; }
.dc3 em { font-style:normal; font-size:10px; color:#8FA8B4; width:26px; text-align:right; flex:none; }
.dc4 { width:32px; flex:none; text-align:right; }
.dc5 { width:56px; flex:none; text-align:right; font-weight:700; color:#42606E; }
.dc5.hi { color:#2E7D5B; } .dc5.lo { color:var(--warn); }
.dc6 { width:60px; flex:none; text-align:right; color:#8FA8B4; font-size:10.5px; }
.dfoot { font-size:10.5px; color:#8FA8B4; padding-top:6px; line-height:1.5; }

.dc1 { width:48px; }
.dc2 { width:60px; }
.dc3 { min-width:38px; padding-left:5px; }
.dc3 em { width:24px; }
.dc4 { width:28px; }
.dc5 { width:52px; }
.dc6, .dc7, .dc8 { width:46px; flex:none; text-align:right; font-size:10.5px; color:#5A7381; }
.dth .dc6, .dth .dc7, .dth .dc8 { color:#7C97A5; }

.updbar { display:flex; align-items:center; gap:10px; background:#F2F6F8; border-radius:9px; padding:9px 11px; margin-bottom:10px; }
.updtx { font-size:11.5px; color:#7C97A5; flex:1; }
.updtx b { color:#42606E; }

.cmpup { color:#2E7D5B; font-weight:700; }
.cmpdown { color:var(--warn); font-weight:700; }
#page-all tr.cmpfirst td { border-top:2px solid var(--line2); }
