.wx-page{
  --navy: #17325c; --brand: #1f5fbf; --brand-soft: #e6eefb; --bg: #eef1f5; --panel: #ffffff; --panel2: #f6f8fb;
  --line: #d8dee8; --line2: #e7ebf1; --fg: #1f2733; --fg2: #5b6677; --fg3: #8a94a4;
  --ok: #1e8a52; --ok-soft: #e3f4ea; --warn: #b86a00; --warn-soft: #fdf0d9; --bad: #c4372f; --bad-soft: #fbe5e3;
  --x-sel: #ffe89a; --x-man: #fffde7; --x-calc: #e2efda; --x-lab: #dce6f2; --x-blue: #2e5496;
  background: var(--bg); color: var(--fg); font-size: 14px; line-height: 1.5;
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.num{ font-variant-numeric: tabular-nums; }
.wrap{ padding: 10px 12px 100px; }
.panel{ background: var(--panel); border: 1px solid var(--line); border-radius: 3px; margin-bottom: 10px; }
.panel-h{ display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; border-bottom: 1px solid var(--line2); background: var(--panel2); font-size: 13px; color: var(--fg2); }
.panel-h .tt{ font-weight: 700; color: var(--fg); font-size: 14px; }
.panel-b{ padding: 8px 12px; }
.note{ font-size: 11px; color: var(--fg3); padding: 0 12px 6px; }
.btn{ display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 16px; border-radius: 3px; font-size: 14px; border: 1px solid var(--line); background: var(--panel); color: var(--fg); margin: 0; line-height: 1; }
.btn::after{ border: none; }
.btn.pri{ background: var(--brand); border-color: var(--brand); color: #fff; }
.btn.dng{ color: var(--bad); border-color: #e7b3af; }
.btn.sm{ height: 28px; padding: 0 10px; font-size: 12px; }
.btn[disabled]{ opacity: .45; }
.pill{ display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 10px; font-size: 11px; line-height: 17px; white-space: nowrap; }
.pill.ok{ background: var(--ok-soft); color: var(--ok); }
.pill.warn{ background: var(--warn-soft); color: var(--warn); }
.pill.bad{ background: var(--bad-soft); color: var(--bad); }
.pill.imp{ background: var(--bad-soft); color: var(--bad); font-weight: 600; }
.pill.nor{ background: var(--panel2); color: var(--fg2); border: 1px solid var(--line2); }
.pill.st{ border: 1px solid currentColor; }
.st0{ color: #5b7bb3; }
.st1{ color: #7a5bb3; }
.st2{ color: #2b8fa6; }
.st3{ color: #b3802b; }
.st4{ color: #5f8a5b; }
.t-ok{ color: var(--ok); }
.t-warn{ color: var(--warn); }
.t-bad{ color: var(--bad); font-weight: 600; }
.t-mut{ color: var(--fg3); }
.row{ display: flex; align-items: center; min-height: 42px; border-bottom: 1px solid var(--line2); gap: 8px; }
.row:last-child{ border-bottom: none; }
.row .lb{ width: 100px; flex: none; font-size: 13px; color: var(--fg2); }
.row .lb .rq{ color: var(--bad); margin-left: 2px; }
.row .ct{ flex: 1; min-width: 0; }
.row.col{ flex-direction: column; align-items: stretch; padding: 7px 0; gap: 4px; }
.row.col .lb{ width: auto; }
.cell{ min-height: 32px; border-radius: 2px; padding: 0 8px; display: flex; align-items: center; font-size: 14px; border: 1px solid transparent; }
.cell input{ width: 100%; height: 32px; font-size: 14px; }
.cell.man{ background: var(--x-man); }
.cell.sel{ background: var(--x-sel); font-weight: 600; }
.cell.calc{ background: var(--x-calc); color: #1f3a1f; }
.cell.ro{ background: var(--panel2); color: var(--fg); }
.cell.miss{ border-color: var(--bad); box-shadow: 0 0 0 1px var(--bad); }
.cell .ph{ color: #b5b5b5; font-weight: 400; }
.cell .arr{ margin-left: auto; color: var(--fg3); font-size: 11px; padding-left: 4px; }
textarea.cell, .cell.area{ width: auto; min-height: 70px; padding: 7px 8px; display: block; box-sizing: border-box; }
.bar{ position: fixed; left: 0; right: 0; bottom: 0; background: var(--panel); border-top: 1px solid var(--line); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); display: flex; gap: 8px; align-items: center; z-index: 20; flex-wrap: wrap; }
.bar .sp{ flex: 1; }
.bar .err{ width: 100%; font-size: 12px; color: var(--bad); }
.empty{ padding: 40px 12px; text-align: center; color: var(--fg2); font-size: 13px; }
.empty .b{ display: block; font-size: 15px; color: var(--fg); font-weight: 600; margin-bottom: 6px; }
.wrap{ max-width: 1100px; margin: 0 auto; box-sizing: border-box; }
.btn{ white-space: nowrap; flex-shrink: 0; }
.bar{ justify-content: flex-end; }
.bar > .btn, .bar > button{ flex-shrink: 0; }
.refbox{ background: #fff; border: 1px solid var(--brand); border-radius: 3px; margin-bottom: 10px; }
.refwrap{ padding: 8px 12px 0; max-width: 1100px; }
.refwrap .refbox{ margin-bottom: 0; }
.ref-h{ display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: var(--brand-soft); }
.ref-h .tt{ font-weight: 700; color: var(--brand); font-size: 14px; }
.ref-t{ font-size: 12px; color: var(--fg2); }
.ref-d{ font-size: 12px; color: var(--fg2); padding: 8px 12px 0; }
.ref-s{ display: flex; gap: 6px; align-items: center; padding: 8px 12px; }
.ref-in{ flex: 1; }
.ref-m{ font-size: 12px; color: var(--fg3); padding: 0 12px 8px; }
.ref-i{ padding: 8px 12px; border-top: 1px solid var(--line2); }
.ri1{ display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--brand); font-weight: 600; }
.ri1 .ri-d{ margin-left: auto; color: var(--fg3); font-weight: 400; font-size: 11px; }
.ri2{ font-size: 12px; color: var(--fg2); margin-top: 2px; }
.ri3{ font-size: 12px; color: var(--fg); margin-top: 1px; }

/* pages/index/index */
.p-index-index .head{ background: var(--navy); color: #fff; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; }
.p-index-index .who .nm{ font-size: 16px; font-weight: 700; }
.p-index-index .who .dp{ font-size: 12px; opacity: .7; margin-left: 8px; }
.p-index-index .hbtns{ display: flex; gap: 6px; }
.p-index-index .btn.ghost{ background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
.p-index-index .tabs{ display: flex; background: var(--panel); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; }
.p-index-index .tab{ flex: 1; text-align: center; padding: 11px 0; font-size: 14px; color: var(--fg2); border-bottom: 2px solid transparent; }
.p-index-index .tab.on{ color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.p-index-index .tab .cnt{ font-size: 11px; margin-left: 3px; color: var(--fg3); }
.p-index-index .tab .cnt.bad{ color: var(--bad); }
.p-index-index .pbtns{ display: flex; gap: 8px; justify-content: flex-end; padding-top: 8px; }
.p-index-index .meta{ font-size: 12px; color: var(--fg3); margin: 0 2px 6px; display: flex; align-items: center; justify-content: space-between; }
.p-index-index .btn.exp{ height: 28px; color: var(--brand); border-color: var(--brand); }
.p-index-index .meta .b{ color: var(--fg); font-weight: 600; }
.p-index-index .item{ background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--line); border-radius: 3px; padding: 9px 11px; margin-bottom: 8px; }
.p-index-index .item.imp{ border-left-color: var(--bad); }
.p-index-index .item .r1{ display: flex; justify-content: space-between; align-items: center; }
.p-index-index .item .no{ color: var(--brand); font-weight: 600; font-size: 13px; }
.p-index-index .item .r2{ font-size: 15px; font-weight: 600; margin: 4px 0 2px; }
.p-index-index .item .r3{ font-size: 12px; color: var(--fg2); }
.p-index-index .item .r4{ display: flex; align-items: center; gap: 5px; margin-top: 6px; flex-wrap: wrap; }
.p-index-index .item .r4 .sp{ flex: 1; }
.p-index-index .item .due{ font-size: 11px; color: var(--fg3); }
.p-index-index .item .lf{ font-size: 12px; }
.p-index-index .more{ text-align: center; color: var(--fg3); font-size: 12px; padding: 10px 0; }
.p-index-index .fab{ position: fixed; right: 16px; bottom: calc(24px + env(safe-area-inset-bottom)); background: var(--brand); color: #fff; padding: 11px 18px; border-radius: 24px; font-size: 15px; font-weight: 600; box-shadow: 0 4px 12px rgba(31,95,191,.35); }

/* pages/form/form */
.p-form-form .sheet-head{ background: #1f3864; color: #fff; text-align: center; padding: 9px 12px 7px; }
.p-form-form .sheet-head .co{ font-size: 16px; font-weight: 700; letter-spacing: 1px; }
.p-form-form .sheet-head .ti{ font-size: 13px; opacity: .85; margin-top: 2px; }
.p-form-form .legend{ background: #fff4cc; color: #9c5700; font-size: 11px; padding: 6px 12px; display: flex; align-items: center; flex-wrap: wrap; }
.p-form-form .legend .lg{ display: inline-block; width: 12px; height: 9px; border: 1px solid #8ea2c4; margin-right: 3px; }
.p-form-form .legend .lg.sel{ background: var(--x-sel); }
.p-form-form .legend .lg.man{ background: var(--x-man); }
.p-form-form .legend .lg.calc{ background: var(--x-calc); }
.p-form-form .rq{ color: var(--bad); font-size: 11px; margin-left: 2px; }
.p-form-form .cell.wht{ background: #fff; border: 1px solid var(--line); }
.p-form-form .cell.combo{ padding-right: 0; }
.p-form-form .cell.combo input{ flex: 1; }
.p-form-form .cell .pk{ padding: 0 10px; height: 32px; display: flex; align-items: center; }
.p-form-form .spec{ display: grid; grid-template-columns: 85px 1fr 55px 1fr; gap: 4px; align-items: center; padding: 3px 0; }
.p-form-form .spec.hd{ background: var(--x-blue); color: #fff; font-size: 11px; font-weight: 600; text-align: center; padding: 5px 0; border-radius: 2px; margin-bottom: 3px; }
.p-form-form .spec .sl{ font-size: 12px; color: var(--fg2); background: var(--x-lab); min-height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 2px; font-weight: 600; text-align: center; line-height: 1.2; }
.p-form-form .spec .cell{ font-size: 13px; padding: 0 5px; justify-content: center; }
.p-form-form .spec .cell input{ text-align: center; font-size: 13px; }
.p-form-form .spec .cerr{ color: var(--bad); font-size: 10px; }
.p-form-form .fc{ border-color: #1f3864; }
.p-form-form .fc-h{ background: #1f3864; color: #fff; font-size: 12px; font-weight: 700; padding: 7px 12px; }
.p-form-form .sub{ font-size: 12px; font-weight: 700; color: var(--fg); background: var(--x-lab); padding: 4px 7px; margin: 7px 0 3px; border-radius: 2px; }
.p-form-form .seg{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.p-form-form .sg{ display: flex; flex-direction: column; gap: 3px; }
.p-form-form .sgl{ font-size: 11px; color: var(--fg2); text-align: center; }
.p-form-form .sg .cell{ justify-content: center; }
.p-form-form .seg-note{ font-size: 10px; color: #5a5a5a; text-align: center; padding: 4px 0; }
.p-form-form .combo-r{ font-weight: 700; justify-content: center; color: #c00000; font-size: 15px; }
.p-form-form .cell.b{ font-weight: 700; }
.p-form-form .cell.ro{ padding-top: 5px; padding-bottom: 5px; line-height: 1.5; }
.p-form-form .st-amb{ background: #ffeb9c; color: #9c5700; padding: 5px 8px; line-height: 1.5; }
.p-form-form .st-ok{ background: #c6efce; color: #006100; font-weight: 600; padding: 5px 8px; }
.p-form-form .miss-t{ font-size: 11px; color: var(--bad); }
.p-form-form .hint{ font-size: 10px; color: #5a5a5a; margin-top: 2px; }
.p-form-form .verdict{ text-align: center; font-size: 15px; font-weight: 700; padding: 11px 8px; border-top: 1px solid var(--line); }
.p-form-form .verdict.bad{ background: #ffc7ce; color: #c00000; }
.p-form-form .verdict.wait{ background: #ffeb9c; color: #9c5700; }
.p-form-form .verdict.ok{ background: #c6efce; color: #006100; }
.p-form-form .foot{ font-size: 11px; color: var(--fg3); padding: 0 2px; }
.p-form-form .switch{ background: #fff; color: var(--brand); font-size: 12px; padding: 7px 12px; border-bottom: 1px solid var(--line); text-align: right; }

/* pages/sheet/sheet */
.wx-page.p-sheet-sheet{ background: #eef1f5; padding-bottom: 90px; }
.p-sheet-sheet .bar-top{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; background: #fff; border-bottom: 1px solid #d8dee8; padding: 8px 14px; font-size: 13px; }
.p-sheet-sheet .mt{ display: flex; align-items: center; gap: 6px; }
.p-sheet-sheet .ml{ color: #5b6677; }
.p-sheet-sheet .mbox{ height: 28px; line-height: 28px; padding: 0 10px; border: 1px solid #d8dee8; border-radius: 3px; font-size: 13px; min-width: 110px; }
.p-sheet-sheet .mbox.sel{ background: #ffe89a; font-weight: 600; }
.p-sheet-sheet .mbox.man{ background: #fffde7; }
.p-sheet-sheet .hint{ color: #8a94a4; font-size: 12px; }
.p-sheet-sheet .sp{ flex: 1; }
.p-sheet-sheet .lnk{ color: #1f5fbf; font-size: 13px; padding: 4px 6px; }
.p-sheet-sheet .hscroll{ width: 100%; white-space: normal; }
.p-sheet-sheet .xs{ display: grid; min-width: 1080px; margin: 10px 12px; background: #fff; border-top: 1px solid #8ea2c4; border-left: 1px solid #8ea2c4; color: #000; font-size: 12px; font-family: "Microsoft YaHei", "PingFang SC", sans-serif; }
.p-sheet-sheet .cx{ border-right: 1px solid #8ea2c4; border-bottom: 1px solid #8ea2c4; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; min-width: 0; position: relative; box-sizing: border-box; }
.p-sheet-sheet .tx{ padding: 0 4px; line-height: 1.3; white-space: pre-wrap; word-break: break-all; }
.p-sheet-sheet .left{ justify-content: flex-start; text-align: left; }
.p-sheet-sheet .left .tx{ padding: 0 8px; }
.p-sheet-sheet .b{ font-weight: 700; }
.p-sheet-sheet .k-note{ background: #fff4cc; color: #9c5700; font-weight: 700; font-size: 11.5px; justify-content: flex-start; }
.p-sheet-sheet .k-note .tx{ padding: 0 8px; }
.p-sheet-sheet .k-t1{ background: #1f3864; color: #fff; font-weight: 700; font-size: 17px; letter-spacing: 1px; }
.p-sheet-sheet .k-t2{ background: #2e5496; color: #fff; font-weight: 700; font-size: 15px; }
.p-sheet-sheet .k-hd{ background: #2e5496; color: #fff; font-weight: 700; font-size: 11.5px; }
.p-sheet-sheet .k-nv{ background: #1f3864; color: #fff; font-weight: 700; font-size: 12.5px; justify-content: flex-start; }
.p-sheet-sheet .k-nv .tx{ padding: 0 10px; }
.p-sheet-sheet .k-lb{ background: #dce6f2; font-weight: 700; font-size: 11.5px; }
.p-sheet-sheet .lbbg{ background: #dce6f2; }
.p-sheet-sheet .k-in, .p-sheet-sheet .k-date, .p-sheet-sheet .k-area{ background: #fffde7; }
.p-sheet-sheet .k-inw{ background: #fff; }
.p-sheet-sheet .k-sel, .p-sheet-sheet .k-dl, .p-sheet-sheet .selbg{ background: #ffe89a; }
.p-sheet-sheet .k-calc, .p-sheet-sheet .calc{ background: #e2efda; }
.p-sheet-sheet .k-gry, .p-sheet-sheet .gry{ background: #f2f2f2; }
.p-sheet-sheet .k-blank{ background: #fff; }
.p-sheet-sheet .info{ background: #eaf1fb !important; font-size: 11.5px; }
.p-sheet-sheet .mut{ color: #5a5a5a; font-size: 10.5px; }
.p-sheet-sheet .red{ background: #fff !important; color: #c00000; font-weight: 700; font-size: 14px; }
.p-sheet-sheet .combo{ font-weight: 700; font-size: 13px; background: #ffe89a; }
.p-sheet-sheet .combo.pend{ background: #ffc7ce; color: #c00000; }
.p-sheet-sheet .big{ font-size: 14px; font-weight: 700; }
.p-sheet-sheet .st-bad{ background: #ffc7ce !important; color: #c00000; font-weight: 700; }
.p-sheet-sheet .st-amb{ background: #ffeb9c !important; color: #9c5700; }
.p-sheet-sheet .st-ok{ background: #c6efce !important; color: #006100; font-weight: 700; }
.p-sheet-sheet .cerr{ color: #c00000; font-size: 10.5px; }
.p-sheet-sheet .ip{ width: 100%; height: 100%; min-height: 26px; text-align: center; font-size: 12px; padding: 0 4px; box-sizing: border-box; }
.p-sheet-sheet .pk{ width: 100%; height: 100%; }
.p-sheet-sheet .pv{ width: 100%; height: 100%; min-height: 26px; display: flex; align-items: center; justify-content: center; font-size: 12px; }
.p-sheet-sheet .dl{ width: 100%; height: 100%; display: flex; align-items: center; }
.p-sheet-sheet .dl .ip{ flex: 1; }
.p-sheet-sheet .arr{ padding: 0 8px; color: #555; font-size: 12px; height: 100%; display: flex; align-items: center; }
.p-sheet-sheet .ta{ width: 100%; height: 100%; padding: 6px 8px; font-size: 12px; text-align: left; box-sizing: border-box; }
.p-sheet-sheet .phc{ color: #b5b5b5; font-weight: 400; }
.p-sheet-sheet .miss{ box-shadow: inset 0 0 0 2px #c00000; }
.p-sheet-sheet .legend{ display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #5b6677; padding: 0 14px 10px; align-items: center; }
.p-sheet-sheet .lg{ display: inline-block; width: 14px; height: 10px; border: 1px solid #8ea2c4; margin-right: 4px; vertical-align: -1px; }
.p-sheet-sheet .mt2{ color: #c4372f; }
.p-sheet-sheet .bar{ position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid #d8dee8; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); display: flex; gap: 10px; align-items: center; flex-wrap: wrap; z-index: 20; }
.p-sheet-sheet .bar .err{ width: 100%; font-size: 13px; color: #c4372f; }
.p-sheet-sheet .bar .btn{ height: 36px; line-height: 36px; padding: 0 22px; font-size: 14px; margin: 0; border-radius: 3px; border: 1px solid #d8dee8; background: #fff; }
.p-sheet-sheet .bar .btn::after{ border: none; }
.p-sheet-sheet .bar .btn.pri{ background: #1f5fbf; border-color: #1f5fbf; color: #fff; }

/* pages/detail/detail */
.p-detail-detail .hd{ background: var(--panel); padding: 10px 12px; border-bottom: 1px solid var(--line); }
.p-detail-detail .hd .no{ color: var(--brand); font-size: 13px; font-weight: 600; }
.p-detail-detail .hd .ex{ font-size: 10px; color: var(--fg3); border: 1px dashed var(--line); padding: 0 4px; margin-left: 5px; border-radius: 2px; }
.p-detail-detail .hd .ti{ font-size: 17px; font-weight: 700; margin: 3px 0 6px; }
.p-detail-detail .hd .pills{ display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.p-detail-detail .hd .lf{ font-size: 12px; }
.p-detail-detail .steps{ background: var(--panel); border-bottom: 1px solid var(--line); white-space: nowrap; }
.p-detail-detail .stepw{ display: flex; padding: 9px 6px; min-width: 100%; }
.p-detail-detail .step{ flex: 1; min-width: 70px; display: flex; flex-direction: column; align-items: center; color: var(--fg3); font-size: 12px; position: relative; }
.p-detail-detail .step .c{ width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--line); display: flex; align-items: center; justify-content: center; font-size: 11px; background: var(--panel); }
.p-detail-detail .step .n{ margin-top: 3px; }
.p-detail-detail .step .h{ font-size: 9.5px; color: var(--fg3); }
.p-detail-detail .step.done{ color: var(--fg2); }
.p-detail-detail .step.done .c{ background: var(--brand); border-color: var(--brand); color: #fff; }
.p-detail-detail .step.cur{ color: var(--brand); font-weight: 700; }
.p-detail-detail .step.cur .c{ border-color: var(--brand); color: var(--brand); }
.p-detail-detail .step.skip{ opacity: .45; }
.p-detail-detail .step.skip .c{ border-style: dashed; }
.p-detail-detail .panel.cur{ border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.p-detail-detail .dot{ display: inline-block; width: 4px; height: 13px; border-radius: 1px; margin-right: 6px; vertical-align: -2px; }
.p-detail-detail .kv{ display: flex; padding: 5px 0; border-bottom: 1px solid var(--line2); font-size: 13px; }
.p-detail-detail .kv .k{ width: 100px; color: var(--fg2); flex: none; }
.p-detail-detail .kv .v{ flex: 1; word-break: break-all; }
.p-detail-detail .c37{ margin: 8px 0; padding: 7px 8px; border-radius: 2px; font-size: 13px; font-weight: 600; text-align: center; }
.p-detail-detail .c37.ok{ background: #c6efce; color: #006100; }
.p-detail-detail .c37.warn{ background: #ffeb9c; color: #9c5700; }
.p-detail-detail .c37.bad{ background: #ffc7ce; color: #c00000; }
.p-detail-detail .btn.full{ width: 100%; }
.p-detail-detail .ro{ font-size: 14px; white-space: pre-wrap; word-break: break-all; padding: 4px 0; }
.p-detail-detail .ro.mut{ color: var(--fg3); }
.p-detail-detail .rq{ color: var(--bad); margin-left: 2px; }
.p-detail-detail .lg{ display: flex; flex-direction: column; padding: 5px 0; border-bottom: 1px solid var(--line2); }
.p-detail-detail .lg .tm{ font-size: 11px; color: var(--fg3); }
.p-detail-detail .lg .mg{ font-size: 13px; }
.p-detail-detail .lg .by{ color: var(--fg3); }
.p-detail-detail .apf{ border: 1px solid var(--line); border-radius: 3px; padding: 6px 8px; margin: 8px 0; }
.p-detail-detail .apt{ font-size: 12px; color: var(--fg2); margin-bottom: 3px; font-weight: 600; }
.p-detail-detail .aps{ display: flex; align-items: center; gap: 6px; font-size: 13px; padding: 3px 0; color: var(--fg3); }
.p-detail-detail .aps .apm{ width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); font-size: 11px; display: flex; align-items: center; justify-content: center; flex: none; }
.p-detail-detail .aps .apn{ font-weight: 600; flex: none; }
.p-detail-detail .aps .apu{ flex: 1; word-break: break-all; }
.p-detail-detail .aps .aps-t{ font-size: 11px; flex: none; }
.p-detail-detail .aps.done{ color: var(--ok); }
.p-detail-detail .aps.done .apm{ background: var(--ok); border-color: var(--ok); color: #fff; }
.p-detail-detail .aps.cur{ color: var(--brand); }
.p-detail-detail .aps.cur .apm{ border-color: var(--brand); }
.p-detail-detail .rej{ background: var(--bad-soft); color: var(--bad); font-size: 13px; padding: 6px 8px; border-radius: 3px; margin-bottom: 8px; }

/* pages/register/register */
.p-register-register .top{ background: var(--navy); color: #fff; text-align: center; padding: 30px 12px 24px; }
.p-register-register .top .co{ font-size: 13px; opacity: .8; }
.p-register-register .top .ti{ font-size: 20px; font-weight: 700; margin-top: 4px; letter-spacing: 2px; }
.p-register-register .msg{ background: var(--warn-soft); color: var(--warn); padding: 8px 10px; border-radius: 3px; font-size: 13px; margin-bottom: 6px; }
.p-register-register .msg.bad{ background: var(--bad-soft); color: var(--bad); }
.p-register-register .btn.full{ width: 100%; margin-top: 10px; }

/* pages/admin/admin */
.p-admin-admin .tabs{ display: flex; background: var(--panel); border-bottom: 1px solid var(--line); }
.p-admin-admin .tab{ flex: 1; text-align: center; padding: 11px 0; color: var(--fg2); border-bottom: 2px solid transparent; }
.p-admin-admin .tab.on{ color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.p-admin-admin .tip{ font-size: 12px; color: var(--fg2); background: var(--brand-soft); padding: 7px 9px; border-radius: 3px; margin-bottom: 8px; }
.p-admin-admin .user{ background: var(--panel); border: 1px solid var(--line); border-radius: 3px; padding: 9px 11px; margin-bottom: 8px; }
.p-admin-admin .user.pending{ border-color: var(--warn); }
.p-admin-admin .user.disabled{ opacity: .6; }
.p-admin-admin .u1{ display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.p-admin-admin .u1 .nm{ font-size: 15px; font-weight: 600; }
.p-admin-admin .u1 .dp{ font-size: 12px; color: var(--fg3); flex: 1; }
.p-admin-admin .roles{ display: flex; flex-wrap: wrap; gap: 6px; margin: 7px 0 3px; }
.p-admin-admin .role{ font-size: 12px; padding: 4px 9px; border-radius: 15px; border: 1px solid var(--line); color: var(--fg2); }
.p-admin-admin .role.on{ background: var(--brand-soft); border-color: var(--brand); color: var(--brand); font-weight: 600; }
.p-admin-admin .u3{ display: flex; gap: 6px; justify-content: flex-end; }
.p-admin-admin .mono{ font-family: Menlo, Consolas, monospace; font-size: 12px; }
.p-admin-admin .dh, .p-admin-admin .dr{ display: grid; grid-template-columns: 1.3fr 1.3fr 0.8fr 25px; gap: 4px; align-items: center; }
.p-admin-admin .dh{ font-size: 11px; color: var(--fg2); padding-bottom: 4px; }
.p-admin-admin .dr{ padding: 3px 0; }
.p-admin-admin .dr .cell{ padding: 0 5px; font-size: 12px; }
.p-admin-admin .dr .cell input{ font-size: 12px; }
.p-admin-admin .x{ color: var(--fg3); font-size: 18px; text-align: center; }
.p-admin-admin .exp-ta{ min-height: 420px; width: 100%; line-height: 1.7; }
.p-admin-admin .tip .b{ font-weight: 700; }
.p-admin-admin .stp{ border: 1px solid var(--line); border-radius: 3px; padding: 7px 8px; margin-bottom: 8px; }
.p-admin-admin .stp-h{ display: flex; align-items: center; gap: 6px; }
.p-admin-admin .stp-n{ width: 20px; height: 20px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 11px; display: flex; align-items: center; justify-content: center; flex: none; }
.p-admin-admin .stp-i{ flex: 1; }
.p-admin-admin .hint2{ font-size: 11px; color: var(--fg3); margin: 3px 0 6px; }
.p-admin-admin .panel-h .x{ margin-left: auto; padding: 0 6px; }
.p-admin-admin .ph{ font-size: 12px; color: var(--fg2); margin-top: 4px; }
.p-admin-admin .nbtn{ display: flex; gap: 8px; padding: 10px 0 4px; }
.p-admin-admin .sm{ font-size: 11px; margin-left: 6px; }
.p-admin-admin .tip .b{ font-weight: 700; }
.p-admin-admin .user.invited{ border-style: dashed; }

/* pages/gs/home */
.p-gs-home .kpis{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line2); }
.p-gs-home .kpi{ background: var(--panel); padding: 9px 10px; }
.p-gs-home .kpi .kl{ font-size: 11px; color: var(--fg2); }
.p-gs-home .kpi .kv{ font-size: 20px; font-weight: 700; margin: 2px 0; }
.p-gs-home .kpi .ks{ font-size: 10px; color: var(--fg3); }
.p-gs-home .kpi.ok .kv{ color: var(--ok); }
.p-gs-home .kpi.bad .kv{ color: var(--bad); }
.p-gs-home .grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line2); }
.p-gs-home .gi{ background: var(--panel); padding: 12px 6px; display: flex; flex-direction: column; align-items: center; }
.p-gs-home .gi .ic{ width: 34px; height: 34px; border-radius: 8px; background: var(--brand-soft); color: var(--brand); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.p-gs-home .gi .gn{ font-size: 13px; margin-top: 5px; text-align: center; }
.p-gs-home .gi .gc{ font-size: 11px; color: var(--fg3); }
.p-gs-home .ln{ display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line2); font-size: 14px; }
.p-gs-home .ln:last-child{ border-bottom: none; }
.p-gs-home .btn.full{ width: 100%; }
@media (min-width: 700px){.p-gs-home .kpis{ grid-template-columns: repeat(6, 1fr); }
.p-gs-home .grid{ grid-template-columns: repeat(5, 1fr); }
}
.p-gs-home .errbox{ background: var(--bad-soft); color: var(--bad); font-size: 12px; padding: 8px 10px; border-radius: 3px; margin-bottom: 8px; word-break: break-all; }

/* pages/gs/list */
.p-gs-list .tip{ font-size: 11px; color: var(--fg2); background: var(--brand-soft); padding: 6px 9px; border-radius: 3px; margin-bottom: 8px; line-height: 1.6; }
.p-gs-list .ids{ font-size: 13px; background: var(--warn-soft); color: var(--warn); padding: 7px 10px; border-radius: 3px; margin-bottom: 8px; display: flex; justify-content: space-between; }
.p-gs-list .ids .lk{ color: var(--brand); }
.p-gs-list .srch{ display: flex; gap: 6px; align-items: center; }
.p-gs-list .srch .fx{ flex: 1; }
.p-gs-list .flt{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.p-gs-list .fp{ font-size: 12px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 14px; color: var(--fg2); }
.p-gs-list .fp.on{ border-color: var(--brand); color: var(--brand); background: var(--brand-soft); font-weight: 600; }
.p-gs-list .meta{ font-size: 12px; color: var(--fg3); margin: 0 2px 6px; display: flex; align-items: center; justify-content: space-between; }
.p-gs-list .meta .b{ color: var(--fg); font-weight: 600; }
.p-gs-list .btn.exp{ color: var(--brand); border-color: var(--brand); }
.p-gs-list .item{ background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--line); border-radius: 3px; padding: 9px 11px; margin-bottom: 8px; }
.p-gs-list .item.od{ border-left-color: var(--bad); }
.p-gs-list .item .r1{ display: flex; align-items: center; gap: 6px; }
.p-gs-list .item .no{ color: var(--brand); font-weight: 600; font-size: 13px; flex: 1; }
.p-gs-list .item .r2{ font-size: 14px; font-weight: 600; margin: 4px 0 2px; white-space: pre-wrap; word-break: break-all; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.p-gs-list .item .r3{ font-size: 12px; color: var(--fg2); }
.p-gs-list .item .r4{ display: flex; align-items: center; gap: 6px; margin-top: 5px; font-size: 12px; }
.p-gs-list .item .r4 .sp{ flex: 1; }
.p-gs-list .item .who{ color: var(--fg); }
.p-gs-list .more{ text-align: center; color: var(--fg3); font-size: 12px; padding: 10px 0; }
.p-gs-list .fab{ position: fixed; right: 16px; bottom: calc(24px + env(safe-area-inset-bottom)); background: var(--brand); color: #fff; padding: 11px 18px; border-radius: 24px; font-size: 15px; font-weight: 600; box-shadow: 0 4px 12px rgba(31,95,191,.35); }

/* pages/gs/edit */
.p-gs-edit .hd{ background: var(--panel); padding: 9px 12px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--brand); }
.p-gs-edit .ro-tip{ font-size: 12px; background: var(--warn-soft); color: var(--warn); padding: 7px 10px; border-radius: 3px; margin-bottom: 8px; }
.p-gs-edit .row .lb{ width: 112px; }
.p-gs-edit .lb .cc{ font-size: 9px; color: var(--fg3); margin-left: 4px; font-family: Menlo, Consolas, monospace; }
.p-gs-edit .pre{ white-space: pre-wrap; word-break: break-all; padding-top: 6px; padding-bottom: 6px; }
.p-gs-edit .cell.calc{ padding-top: 5px; padding-bottom: 5px; white-space: pre-wrap; word-break: break-all; }
.p-gs-edit .dt{ display: flex; align-items: center; gap: 4px; }
.p-gs-edit .dt .fx{ flex: 1; }
.p-gs-edit .mini{ width: 26px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--fg3); border: 1px solid var(--line); border-radius: 2px; font-size: 13px; }
.p-gs-edit .combo{ padding-right: 0; }
.p-gs-edit .combo input{ flex: 1; }
.p-gs-edit .combo .pk{ padding: 0 10px; height: 32px; display: flex; align-items: center; color: var(--fg3); font-size: 11px; }
.p-gs-edit .lk{ color: var(--brand); font-size: 13px; }
.p-gs-edit .pl{ padding: 7px 0; border-bottom: 1px solid var(--line2); }
.p-gs-edit .pl:last-child{ border-bottom: none; }
.p-gs-edit .pl1{ display: flex; gap: 6px; align-items: center; font-size: 13px; color: var(--brand); font-weight: 600; }
.p-gs-edit .pl1 .num{ flex: 1; }
.p-gs-edit .pl2{ font-size: 13px; color: var(--fg2); white-space: pre-wrap; }
.p-gs-edit .lg{ display: flex; flex-direction: column; padding: 4px 0; border-bottom: 1px solid var(--line2); font-size: 12px; }
.p-gs-edit .lg .tm{ color: var(--fg3); font-size: 11px; }

/* pages/gs/board */
.p-gs-board .flt{ display: flex; flex-wrap: wrap; gap: 6px; }
.p-gs-board .fp{ font-size: 12px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 14px; color: var(--fg2); }
.p-gs-board .fp.on{ border-color: var(--brand); color: var(--brand); background: var(--brand-soft); font-weight: 600; }
.p-gs-board .sm-t{ font-size: 11px; color: var(--fg3); margin: 0 2px 6px; }
.p-gs-board .kpis{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line2); border: 1px solid var(--line); border-radius: 3px; margin-bottom: 10px; overflow: hidden; }
.p-gs-board .kpi{ background: var(--panel); padding: 9px 10px; }
.p-gs-board .kpi .kl{ font-size: 11px; color: var(--fg2); }
.p-gs-board .kpi .kv{ font-size: 20px; font-weight: 700; margin: 2px 0; }
.p-gs-board .kpi .ks{ font-size: 10px; color: var(--fg3); }
.p-gs-board .kpi.ok .kv{ color: var(--ok); }
.p-gs-board .kpi.bad .kv{ color: var(--bad); }
.p-gs-board .mt{ white-space: nowrap; border-bottom: 1px solid var(--line2); }
.p-gs-board .mtw{ display: inline-flex; padding: 0 8px; }
.p-gs-board .mtab{ padding: 8px 10px; font-size: 13px; color: var(--fg2); border-bottom: 2px solid transparent; }
.p-gs-board .mtab.on{ color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.p-gs-board .br{ display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 12px; }
.p-gs-board .bc{ width: 78px; flex: none; color: var(--fg2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p-gs-board .bt{ flex: 1; height: 14px; background: var(--panel2); border-radius: 2px; overflow: hidden; }
.p-gs-board .bf{ height: 100%; background: var(--brand); border-radius: 2px; }
.p-gs-board .bv{ width: 52px; text-align: right; flex: none; }
@media (min-width: 700px){.p-gs-board .kpis{ grid-template-columns: repeat(6, 1fr); }
.p-gs-board .bc{ width: 120px; }
}

/* pages/gs/check */
.p-gs-check .sum{ font-size: 13px; padding: 8px 10px; border-radius: 3px; margin-bottom: 8px; }
.p-gs-check .sum.bad{ background: var(--bad-soft); color: var(--bad); }
.p-gs-check .sum.ok{ background: var(--ok-soft); color: var(--ok); }
.p-gs-check .ck{ padding: 8px 0; border-bottom: 1px solid var(--line2); }
.p-gs-check .ck:last-child{ border-bottom: none; }
.p-gs-check .c1{ display: flex; justify-content: space-between; align-items: center; font-size: 14px; }
.p-gs-check .cn{ font-weight: 700; color: var(--ok); min-width: 30px; text-align: right; }
.p-gs-check .ck.on .cn{ color: var(--bad); }
.p-gs-check .ck.on .cl::after{ content: ' ›'; color: var(--fg3); }
.p-gs-check .c2{ font-size: 11px; color: var(--fg3); margin-top: 2px; }

/* pages/gs/assess */
.p-gs-assess .top{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.p-gs-assess .mp{ font-size: 15px; font-weight: 700; color: var(--brand); }
.p-gs-assess .btn.exp{ color: var(--brand); border-color: var(--brand); }
.p-gs-assess .tip{ font-size: 11px; color: var(--fg2); background: var(--brand-soft); padding: 6px 9px; border-radius: 3px; margin-bottom: 8px; }
.p-gs-assess .dt{ display: grid; grid-template-columns: 1fr .7fr 1fr 1fr 1fr 1fr 1fr 1fr; font-size: 12px; padding: 4px 0; text-align: center; }
.p-gs-assess .dt.dh{ color: var(--fg3); font-size: 10px; border-bottom: 1px solid var(--line2); }
.p-gs-assess .dt .b{ font-weight: 700; }
.p-gs-assess .ps{ background: var(--panel); border: 1px solid var(--line); border-radius: 3px; margin-bottom: 8px; padding: 9px 11px; }
.p-gs-assess .ps.none{ opacity: .7; }
.p-gs-assess .p1{ display: flex; justify-content: space-between; align-items: center; }
.p-gs-assess .pn{ display: flex; flex-direction: column; }
.p-gs-assess .pv{ display: flex; flex-direction: column; align-items: flex-end; }
.p-gs-assess .nm{ font-size: 15px; font-weight: 700; }
.p-gs-assess .pr{ font-size: 11px; color: var(--fg3); }
.p-gs-assess .sc{ font-size: 22px; font-weight: 700; color: var(--brand); }
.p-gs-assess .p2{ font-size: 12px; color: var(--fg2); margin-top: 4px; }
.p-gs-assess .p3{ margin-top: 8px; border-top: 1px solid var(--line2); padding-top: 6px; }
.p-gs-assess .kh, .p-gs-assess .kr{ display: grid; grid-template-columns: 2.2fr 1fr .6fr .7fr; font-size: 12px; padding: 3px 0; }
.p-gs-assess .kh{ color: var(--fg3); font-size: 11px; }
.p-gs-assess .kr span:not(:first-child), .p-gs-assess .kh span:not(:first-child){ text-align: right; }
.p-gs-assess .kr.off{ color: var(--fg3); }
.p-gs-assess .kn{ font-size: 11px; color: var(--fg3); margin-top: 4px; }
.p-gs-assess .man{ margin-top: 8px; border-top: 1px dashed var(--line); padding-top: 4px; }

/* pages/gs/setting */
.p-gs-setting .tabs{ display: flex; background: var(--panel); border-bottom: 1px solid var(--line); }
.p-gs-setting .tab{ flex: 1; text-align: center; padding: 11px 0; color: var(--fg2); border-bottom: 2px solid transparent; font-size: 14px; }
.p-gs-setting .tab.on{ color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.p-gs-setting .tip{ font-size: 11px; color: var(--fg2); background: var(--brand-soft); padding: 6px 9px; border-radius: 3px; margin-bottom: 8px; line-height: 1.6; }
.p-gs-setting .mono{ font-family: Menlo, Consolas, monospace; font-size: 12px; }
.p-gs-setting .rs .r1, .p-gs-setting .rs .r2{ display: flex; gap: 6px; align-items: center; }
.p-gs-setting .rs .r2{ margin-top: 6px; }
.p-gs-setting .rs .r1 .cell{ flex: 1; }
.p-gs-setting .rs .nm{ font-weight: 600; }
.p-gs-setting .rs .x{ color: var(--fg3); font-size: 18px; padding: 0 6px; }
.p-gs-setting .rs .jn{ font-size: 12px; color: var(--fg2); margin-left: auto; display: flex; align-items: center; gap: 4px; }
.p-gs-setting .rs .jn wx-switch{ transform: scale(.75); }
.p-gs-setting .kh, .p-gs-setting .kr{ display: grid; grid-template-columns: 2.4fr repeat(6, 1fr); gap: 3px; align-items: center; font-size: 11px; padding: 3px 0; }
.p-gs-setting .kh{ color: var(--fg3); text-align: center; }
.p-gs-setting .kr .kl{ font-size: 12px; display: flex; flex-direction: column; line-height: 1.3; }
.p-gs-setting .kr .kl .t-mut{ font-size: 9px; }
.p-gs-setting .ki{ background: var(--x-man); height: 28px; text-align: center; font-size: 12px; border-radius: 2px; }
.p-gs-setting .kr.sum span{ text-align: center; font-weight: 700; font-size: 12px; }
