*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
     background:#f2f4f8;color:#1f2937;font-size:15px;line-height:1.5;padding-bottom:66px}
#hd{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:16px;
    position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(30,58,138,.25)}
.hd-t{font-size:18px;font-weight:600}
.hd-sub{font-size:12px;opacity:.85;margin-top:3px}
#main{padding:12px}
#tabbar{position:fixed;left:0;right:0;bottom:0;height:58px;background:#fff;display:flex;
        border-top:1px solid #e5e7eb;z-index:60}
.tb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:#9ca3af;text-decoration:none;font-size:11px;gap:2px}
.tb i{font-style:normal;font-size:15px;font-weight:700}
.tb.act{color:#2563eb}
.tb.add i{background:#2563eb;color:#fff;width:34px;height:34px;border-radius:50%;
          display:flex;align-items:center;justify-content:center;font-size:22px;margin-top:-14px;
          box-shadow:0 3px 10px rgba(37,99,235,.4)}

.card{background:#fff;border-radius:12px;padding:14px;margin-bottom:12px;
      box-shadow:0 1px 4px rgba(0,0,0,.05)}
.card-t{font-size:14px;font-weight:600;color:#374151;margin-bottom:10px;
        display:flex;align-items:center;justify-content:space-between}
.card-t small{font-weight:400;color:#9ca3af;font-size:12px}

.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.kpi{background:#fff;border-radius:12px;padding:13px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.kpi .k-l{font-size:12px;color:#6b7280}
.kpi .k-v{font-size:19px;font-weight:700;margin-top:4px;color:#1f2937;word-break:break-all}
.kpi .k-v.r{color:#dc2626}.kpi .k-v.g{color:#059669}.kpi .k-v.b{color:#2563eb}
.kpi.full{grid-column:1/-1}

.pbar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-top:8px}
.pbar>i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:4px}
.pbar>i.warn{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.pbar>i.over{background:linear-gradient(90deg,#dc2626,#f87171)}

.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:9px;font-size:13px}
.bar-row .n{width:74px;flex-shrink:0;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row .b{flex:1;height:16px;background:#f3f4f6;border-radius:8px;overflow:hidden}
.bar-row .b>i{display:block;height:100%;background:#3b82f6;border-radius:8px}
.bar-row .v{width:80px;text-align:right;font-weight:600;color:#374151;flex-shrink:0}

.exl{display:flex;align-items:center;padding:11px 0;border-bottom:1px solid #f3f4f6;cursor:pointer}
.exl:last-child{border-bottom:none}
.exl .ex-ic{width:38px;height:38px;border-radius:9px;background:#eff6ff;color:#2563eb;
            display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;
            margin-right:10px;flex-shrink:0}
.exl .ex-m{flex:1;min-width:0}
.exl .ex-n{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exl .ex-d{font-size:11px;color:#9ca3af;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exl .ex-r{text-align:right;flex-shrink:0;margin-left:8px}
.exl .ex-a{font-size:15px;font-weight:700}
.exl .ex-a.p{color:#dc2626}
.tag{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;margin-top:3px}
.tag.ok{background:#d1fae5;color:#059669}
.tag.un{background:#fee2e2;color:#dc2626}
.tag.pt{background:#fef3c7;color:#d97706}

.frm{display:flex;flex-direction:column;gap:13px}
.fg{display:flex;flex-direction:column;gap:6px}
.fg label{font-size:13px;color:#4b5563;font-weight:500}
.fg label b{color:#dc2626;font-weight:400}
.fg input,.fg select,.fg textarea{padding:11px 12px;border:1px solid #d1d5db;border-radius:9px;
    font-size:15px;font-family:inherit;background:#fff;width:100%}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.fg.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fg.row2>div{display:flex;flex-direction:column;gap:6px}
.fg.row2>div>label{font-size:13px;color:#4b5563;font-weight:500}

.btn{background:#2563eb;color:#fff;border:none;border-radius:9px;padding:13px;
      font-size:16px;font-weight:600;cursor:pointer;width:100%;font-family:inherit}
.btn:active{background:#1d4ed8}
.btn.gh{background:#fff;color:#374151;border:1px solid #d1d5db}
.btn.dg{background:#dc2626}
.btn.sm{padding:8px 12px;font-size:13px;width:auto}
.btnrow{display:flex;gap:10px}

.segs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.segs::-webkit-scrollbar{display:none}
.seg{padding:7px 13px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;
     font-size:13px;color:#4b5563;white-space:nowrap;cursor:pointer;flex-shrink:0}
.seg.act{background:#2563eb;color:#fff;border-color:#2563eb}

.mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;display:none;align-items:flex-end}
.mask.show{display:flex}
.sheet{background:#fff;width:100%;border-radius:16px 16px 0 0;padding:16px 16px 26px;
       max-height:86vh;overflow-y:auto;animation:up .22s ease}
@keyframes up{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet-t{font-size:16px;font-weight:600;margin-bottom:14px;display:flex;
         justify-content:space-between;align-items:center}
.sheet-t span.c{color:#9ca3af;font-size:22px;cursor:pointer;line-height:1}

#toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.82);
       color:#fff;padding:11px 20px;border-radius:9px;font-size:14px;z-index:999;
       opacity:0;pointer-events:none;transition:opacity .22s;max-width:80%;text-align:center}
#toast.show{opacity:1}

.empty{text-align:center;padding:44px 16px;color:#9ca3af;font-size:14px}
.empty b{display:block;font-size:34px;margin-bottom:10px;opacity:.4}
.load{text-align:center;padding:30px;color:#9ca3af;font-size:13px}

.stg{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #f3f4f6;cursor:pointer}
.stg:last-child{border-bottom:none}
.stg .s-i{width:34px;height:34px;border-radius:50%;background:#f3f4f6;color:#6b7280;
          display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
          margin-right:11px;flex-shrink:0}
.stg .s-i.on{background:#2563eb;color:#fff}
.stg .s-n{flex:1;font-size:14px}
.stg .s-a{font-size:14px;font-weight:600;color:#374151}

.mlist{display:flex;flex-direction:column;gap:8px}
.mi{display:flex;align-items:center;padding:13px;background:#fff;border-radius:11px;
    cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.mi .m-ic{width:34px;height:34px;border-radius:9px;background:#eff6ff;color:#2563eb;
          display:flex;align-items:center;justify-content:center;font-size:15px;margin-right:11px}
.mi .m-t{flex:1;font-size:15px}
.mi .m-a{color:#d1d5db;font-size:18px}

.rowli{display:flex;justify-content:space-between;align-items:center;
       padding:10px 0;border-bottom:1px solid #f3f4f6;font-size:14px}
.rowli:last-child{border-bottom:none}
