
  :root{
    --pri:#534AB7; --pri-d:#3C3489; --pri-l:#EEEDFE; --pri-bd:#AFA9EC;
    --bg:#f4f3ef; --card:#ffffff; --line:#ececec; --line2:#e0e0e0;
    --t1:#2c2c2a; --t2:#6b6b66; --t3:#a8a8a2;
    --red:#e24b4a; --red-l:#fceceb; --green:#1d9e75; --green-l:#e1f5ee;
    --amber:#ba7517; --amber-l:#faeeda; --orange:#d85a30; --orange-l:#faece7;
  }
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  button{touch-action:manipulation;cursor:pointer}
  html,body{background:var(--bg);font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--t1)}
  #app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:72px}
  svg{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.15em}
  .hd{position:sticky;top:0;z-index:20;background:rgba(244,243,239,.96);padding:12px 16px 8px;display:flex;align-items:center;gap:8px}
  .hd-ic{width:32px;height:32px;border-radius:9px;background:var(--pri);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .hd-tt{font-size:15px;font-weight:500}
  .hd-sb{font-size:11px;color:var(--t3)}
  .badge-st{font-size:10px;padding:4px 8px;border-radius:99px;white-space:nowrap}
  .st-ok{background:var(--green-l);color:#0f6e56}
  .st-mem{background:var(--amber-l);color:var(--amber)}
  .wrap{padding:0 16px}
  .sec-h{font-size:12px;color:var(--t3);margin:18px 4px 8px;display:flex;align-items:center;gap:5px}
  .sec-gear{margin-left:auto;background:none;border:none;color:var(--pri);font-size:18px;padding:0}
  .reacts{display:flex;gap:6px;margin-top:8px;border-top:0.5px solid var(--line);padding-top:8px}
  .ract{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:12px;padding:7px 0;border:0.5px solid var(--line2);border-radius:8px;background:#fff;color:var(--t2);font-family:inherit}
  .ract.on{border-color:var(--pri-bd);background:var(--pri-l);color:var(--pri-d)}
  .ract svg{font-size:14px}
  .lg-kind{font-size:11px;padding:5px 12px;border-radius:7px;border:1px solid var(--line2);background:#fff;color:var(--t3);font-family:inherit}
  .lg-kind.on{background:var(--pri-l);border-color:var(--pri-bd);color:var(--pri-d)}
  .card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px 16px;display:flex;align-items:center;gap:12px;margin-bottom:8px;transition:transform .1s}
  .card:active{transform:scale(.99)}
  .card-ic{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .card-bd{flex:1;min-width:0}
  .card-tt{font-size:13px;font-weight:500}
  .card-sb{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .chev{color:var(--t3);font-size:18px}
  .banner{display:flex;align-items:center;gap:12px;background:var(--red-l);border:1px solid #f3c9c8;border-radius:13px;padding:12px 16px;margin-top:16px;transition:transform .1s}
  .banner:active{transform:scale(.99)}
  .dot{width:7px;height:7px;border-radius:99px;background:var(--red);display:inline-block}
  .statusbar{display:flex;gap:6px;overflow-x:auto;padding:8px 0;scrollbar-width:none}
  .statusbar::-webkit-scrollbar{display:none}
  .stag{font-size:10px;padding:4px 10px;border-radius:99px;white-space:nowrap;flex-shrink:0;border:1px solid var(--line2);background:#fff;color:var(--t3)}
  .stag.on{background:var(--pri-l);color:var(--pri-d);border-color:var(--pri-bd)}
  .stag.req{border-style:dashed}
  .fcard{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:0 13px;margin-bottom:8px}
  .frow{padding:9px 0;border-bottom:1px solid var(--line)}
  .frow:last-child{border-bottom:none}
  .frow.full{display:flex;gap:9px;align-items:flex-start}
  .frow.half{display:flex;flex-direction:column;gap:6px;border-bottom:none}
  .frow.full .frow-l{width:42px;flex-shrink:0;padding-top:6px}
  .frow.half .frow-top{display:flex;align-items:center;gap:6px}
  .frow.half .frow-top .frow-l{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hrow{display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line)}
  .hrow:last-child{border-bottom:none}
  .hcell{min-width:42%;overflow:hidden}
  /* 锁定=降噪("这里不用管了")：褪色变淡，不用色块/竖条抢视线 —— 别再跟 padfocus 用同一套语言 */
  .frow.locked{background:transparent;opacity:.55;box-shadow:none;border-radius:7px}
  .frow.full.locked{padding-left:8px;padding-right:8px}
  .frow.half.locked{padding:6px 8px}
  .frow-l{font-size:13px;font-weight:500;color:var(--t2);line-height:1.3}
  .frow-l.lreq{color:var(--t1);font-weight:600}
  .frow-c{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .lockbtn{flex-shrink:0;background:none;border:none;color:#c4c2ba;font-size:21px;padding:2px 2px 0}
  .lockbtn.on{color:var(--pri)}
  .plusbtn{flex-shrink:0;width:30px;height:30px;border:1px dashed var(--line2);border-radius:8px;background:#fafafa;color:var(--t3);display:inline-flex;align-items:center;justify-content:center;padding:0}
  .plusbtn svg{font-size:18px}
  .chiptrack{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding-bottom:2px;-webkit-overflow-scrolling:touch;width:100%;min-width:0;justify-content:start}
  .chiptrack::-webkit-scrollbar{display:none}
  .chip{position:relative;font-size:14px;padding:6px 9px;border-radius:8px;border:1px solid var(--line2);background:#fafafa;color:var(--t2);user-select:none;-webkit-touch-callout:none}
  .chip:active{background:#f0eef8}
  .chip.sel{background:var(--pri);color:#fff;border-color:var(--pri)}
  /* AI常用推荐=弱提示，绝不能跟"已选中"抢层级：同色系(紫)虚线弱化版，而非对立的暖黄实底 */
  .chip.top{background:#fafafa;color:var(--t2);border:1px dashed var(--pri-bd);font-weight:500}
  .chip.top::before{content:"✦ ";color:var(--pri-bd);font-size:11px}
  .chip.dash{border-style:dashed;color:var(--t3);background:#fff;padding:6px 9px}
  .chip.edit{border-style:dashed;border-color:var(--pri);color:var(--pri);background:#fff}
  .fe-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 14px;margin-bottom:8px}
  .fe-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .fe-name{flex:1;font-size:15px;font-weight:600;padding:6px 10px;border:1px solid var(--line2);border-radius:8px;outline:none;font-family:inherit;color:var(--t1)}
  .fe-name:focus{border-color:var(--pri)}
  .fe-type{font-size:10px;padding:3px 7px;border-radius:6px;background:var(--pri-l);color:var(--pri);white-space:nowrap}
  .fe-del{background:none;border:none;color:var(--red);font-size:18px;padding:2px 4px}
  .fe-mv{background:#fff;border:1px solid var(--line2);border-radius:7px;color:var(--t2);font-size:13px;padding:4px 8px}
  .fe-togs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .fe-tog{font-size:11px;padding:5px 10px;border-radius:7px;border:1px solid var(--line2);background:#fff;color:var(--t3);font-family:inherit}
  .fe-tog.on{background:var(--pri-l);border-color:var(--pri-bd);color:var(--pri-d)}
  .fe-opt{font-size:13px;padding:5px 8px;border-radius:7px;background:#f4f3fb;border:1px solid var(--line2);color:var(--t2);display:inline-flex;align-items:center;gap:5px}
  .fe-opt b{color:var(--red);font-weight:700;cursor:pointer}
  .fe-optrow{display:flex;align-items:center;gap:6px;margin-bottom:6px}
  .fe-optrow input{flex:1;min-width:0;padding:6px 10px;font-size:14px;border:1px solid var(--line2);border-radius:7px;outline:none;font-family:inherit;color:var(--t1)}
  .fe-optrow input:focus{border-color:var(--pri)}
  .sgwrap{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:6px}
  .fe-add{width:100%;padding:12px;border:1px dashed var(--pri-bd);border-radius:11px;background:var(--pri-l);color:var(--pri-d);font-size:14px;font-family:inherit;margin-bottom:8px}
  .inp{width:100%;padding:9px 12px;font-size:14px;border:1px solid var(--line2);border-radius:9px;outline:none;font-family:inherit;background:#fff;color:var(--t1)}
  .inp:focus{border-color:var(--pri)}
  .inline-in{flex:1;min-width:110px;width:auto}
  .dragnum{flex-shrink:0;font-size:16px;padding:9px 11px;border:1px solid var(--pri-bd);border-radius:9px;background:var(--pri-l);color:var(--pri);font-family:inherit;touch-action:none}
  .dragnum.drag{background:var(--pri);color:#fff}
  .lm-row{display:flex;align-items:center;gap:8px}
  .pricebar{display:flex;align-items:center;gap:8px;background:var(--card);border:1.5px solid var(--pri-bd);border-radius:13px;padding:8px 14px;margin-bottom:8px}
  /* 正在编辑=当屏最抢眼焦点：白底+紫色描边+外发光，跟"锁定"的褪色语言彻底区分开 */
  .pricebar.padfocus{border-color:var(--pri);background:var(--card);box-shadow:0 0 0 2px var(--pri),0 4px 12px rgba(83,74,183,.25)}
  .pb-l{font-size:13px;font-weight:600;color:var(--pri);flex-shrink:0}
  .pb-cur{color:var(--pri);font-size:17px;font-weight:600;flex-shrink:0}
  .pb-inp{flex:1;min-width:0;border:none;background:transparent;font-size:22px;font-weight:600;color:var(--pri-d);outline:none;font-family:inherit;padding:4px 0}
  .id-inp{flex:1;min-width:0;padding:7px 10px;font-size:17px;font-weight:600;border:1px solid var(--line2);border-radius:8px;background:#fff;color:var(--t1);outline:none;font-family:inherit}
  .num-inp{width:130px;padding:7px 10px;font-size:16px;font-weight:600;border:1px solid var(--line2);border-radius:8px;background:#fff;color:var(--t1);outline:none;font-family:inherit}
  .frow.padfocus{background:var(--card);border-radius:8px;box-shadow:0 0 0 2px var(--pri),0 4px 12px rgba(83,74,183,.25)}
  .frow.full.padfocus{padding-left:8px;padding-right:8px}
  .bslim{display:flex;align-items:center;gap:10px;background:var(--card);border:1px dashed var(--line2);border-radius:11px;padding:5px 12px;margin-bottom:8px}
  .bexp{margin-left:auto;background:none;border:none;color:var(--pri);font-size:12px;font-family:inherit;padding:6px 0 6px 10px}
  .bbar{display:flex;align-items:stretch;gap:8px;margin-bottom:8px}
  .bnav{width:46px;flex-shrink:0;border:1px solid var(--pri-bd);border-radius:11px;background:#fff;color:var(--pri);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;font-family:inherit;padding:0}
  .bnav:disabled{color:#d6d4ea;border-color:var(--line2);background:#fafafa}
  .bnav.add{background:var(--pri);color:#fff;border-color:var(--pri)}
  .bmid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#F7F6FD;border:1px dashed var(--pri-bd);border-radius:11px;padding:5px 6px}
  .blabel{font-size:11px;color:var(--pri);display:inline-flex;align-items:center;gap:5px}
  .bdel{background:none;border:none;color:var(--red);font-size:14px;padding:0;line-height:1}
  .qrow{display:flex;align-items:center;gap:12px}
  .qbtn{width:32px;height:30px;border:1px solid var(--pri-bd);border-radius:8px;background:#fff;color:var(--pri);font-size:19px;line-height:1;font-family:inherit;padding:0}
  .qval{font-size:19px;font-weight:600;color:var(--pri-d);min-width:44px;text-align:center;touch-action:none;cursor:ns-resize}
  .hint{font-size:11px;color:var(--amber);margin:8px 4px;display:flex;gap:5px;align-items:center}
  .btn-row{display:flex;gap:8px;padding-top:6px}
  .btn{padding:13px 16px;border-radius:13px;font-size:14px;border:none;font-family:inherit;transition:transform .1s}
  .btn:active{transform:scale(.99)}
  .btn-g{border:1px solid var(--line2);background:#fff;color:var(--t2)}
  .btn-p{flex:1;background:var(--pri);color:#fff;font-size:15px;font-weight:500}
  .nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);display:flex}
  .nav-b{flex:1;padding:9px 0 8px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--t3);background:none;border:none;font-family:inherit;position:relative}
  .nav-b.on{color:var(--pri)}
  .nav-b svg{font-size:22px}
  .nav-b span{font-size:10px}
  .nav-badge{position:absolute;top:4px;left:50%;margin-left:6px;min-width:16px;height:16px;padding:0 4px;background:var(--red);color:#fff;font-size:9px;border-radius:99px;display:flex;align-items:center;justify-content:center}
  .empty{text-align:center;color:var(--t3);font-size:12px;padding:36px 0}
  .empty svg{font-size:32px;color:#9fe1cb;display:block;margin:0 auto 8px}
  .reclist .card{flex-direction:column;align-items:stretch;gap:5px}
  .re-top{display:flex;align-items:center;gap:8px}
  .re-money{margin-left:auto;font-size:13px;font-weight:500;color:var(--pri)}
  .re-sum{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .re-time{font-size:10px;color:var(--t3)}
  .re-miss{font-size:10px;color:var(--red)}
  .pad{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;z-index:31;background:#efece6;border-top:1px solid var(--line2);padding:7px 8px calc(8px + env(safe-area-inset-bottom))}
  .pad-hd{display:flex;align-items:center;gap:8px;padding:1px 2px 7px}
  .pad-name{font-size:12px;color:var(--t2);flex-shrink:0}
  .pad-val{flex:1;display:flex;align-items:center;text-align:left;font-size:24px;font-weight:600;color:var(--pri-d);background:var(--pri-l);border-radius:8px;padding:4px 12px;min-height:26px;line-height:1.3;overflow:hidden;white-space:nowrap}
  .pad-val #pad_val_t{overflow:hidden;text-overflow:ellipsis}
  .pad-body{display:flex;gap:6px}
  .pad-digits{flex:2.3;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .pad-side{flex:1;display:grid;gap:6px}
  .pad-side.side2{grid-template-rows:repeat(2,1fr)}
  .pad-side.side4{grid-template-rows:repeat(4,1fr)}
  .pad-k{padding:9px 0;font-size:19px;font-weight:500;background:#fff;border:1px solid var(--line2);border-radius:9px;color:var(--t1);text-align:center;font-family:inherit}
  .pad-k:active{background:var(--pri-l)}
  .pad-act{font-size:15px;color:var(--pri);background:var(--pri-l);border-color:var(--pri-bd)}
  .pad-done{font-size:15px;font-weight:500;background:var(--pri);color:#fff;border-color:var(--pri)}
  .toast{position:fixed;left:50%;top:28%;transform:translateX(-50%);background:rgba(44,44,42,.93);color:#fff;font-size:13px;padding:9px 18px;border-radius:99px;z-index:50;animation:tfade 1.3s ease forwards}
  @keyframes tfade{0%{opacity:0;transform:translateX(-50%) translateY(-6px)}15%{opacity:1;transform:translateX(-50%) translateY(0)}78%{opacity:1}100%{opacity:0}}
