  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  body{font-family:-apple-system,"Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
       background:#f3f5f9;color:#1c2530;padding:10px 12px 40px}
  .top{position:sticky;top:0;background:#f3f5f9;padding-bottom:8px;z-index:5}
  h1{font-size:19px;font-weight:800}
  .ru{font-size:12px;color:#8a93a0;font-weight:500}
  .batch{font-size:12px;color:#1f6feb;margin-top:2px}
  .me{display:flex;gap:8px;margin-top:8px;align-items:center}
  .me input{flex:1;border:1px solid #d4dae3;border-radius:10px;padding:9px 12px;font-size:15px}
  .stats{font-size:12px;color:#6b7480;margin-top:6px}
  .card{background:#fff;border:1px solid #e6eaf0;border-radius:14px;padding:13px 14px;margin-top:10px;
        display:flex;align-items:center;gap:12px;box-shadow:0 1px 2px rgba(20,30,50,.04)}
  .code{flex:1;min-width:0}
  .code .name{font-size:16px;font-weight:700;word-break:break-all;line-height:1.25}
  .code .sub{font-size:11px;color:#9aa2ad;margin-top:2px}
  .badge{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .b-pending{background:#eef1f5;color:#7a828d}
  .b-doing{background:#e6f0ff;color:#1f6feb}
  .b-done{background:#e7f8ee;color:#1a9c54}
  .btn{border:none;border-radius:10px;padding:10px 13px;font-size:14px;font-weight:700;color:#fff;margin-left:6px}
  .btn-start{background:#1f6feb}
  .btn-done{background:#1a9c54}
  .btn-reset{background:#b9c0ca;color:#333}
  .who{font-size:11px;color:#1f6feb;margin-top:3px}
  .empty{text-align:center;color:#9aa2ad;margin-top:60px;font-size:14px;line-height:1.7}
  .reload{position:fixed;right:12px;bottom:calc(20px + env(safe-area-inset-bottom));background:#1c2530;color:#fff;border:none;
          border-radius:50%;width:52px;height:52px;font-size:12px;box-shadow:0 3px 10px rgba(0,0,0,.25);
          z-index:50;-webkit-tap-highlight-color:rgba(31,111,235,.5);transition:transform .1s ease,background .1s ease}
  .reload:active{transform:scale(.9);background:#1f6feb}
  .reload.loading{width:auto;padding:0 16px;border-radius:999px}
  .reload .spin{display:inline-block}
  .reload.loading .spin{animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .imp{margin-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .btn-imp{background:#e8f0fe;color:#1f6feb;border:1px solid #bcd6f7;border-radius:10px;
           padding:9px 12px;font-size:14px;font-weight:700}
  .btn-imp2{background:#f0f2f5;color:#6b7480;border:1px solid #d4dae3;border-radius:10px;
           padding:9px 12px;font-size:13px;font-weight:700}
  .impdate{font-size:12px;color:#6b7480}
  .batches{margin-top:10px}
  .bhdr{font-size:13px;font-weight:700;color:#1c2530;margin-bottom:2px}
  .brow{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6eaf0;border-radius:10px;
        padding:8px 10px;margin-top:6px;font-size:12px}
  .brow .f{font-weight:700;word-break:break-all;flex:1;min-width:0}
  .brow .m{color:#9aa2ad;white-space:nowrap;text-align:right;line-height:1.4}
  .bdel{background:#fdecec;color:#c0392b;border:1px solid #f3c2c2;border-radius:8px;
        padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}
  .bdel:active{background:#f3c2c2}
  .bempty{font-size:12px;color:#9aa2ad;margin-top:6px}
