/* 蜜雪冰城 · 点单 — 品牌红主题 */
:root{
  --brand:#ec1b2e; --brand-d:#c8102e; --brand-tint:#fff2f3; --brand-weak:#ffe2e5;
  --bg:#fffafa; --panel:#ffffff; --ink:#20181a; --muted:#938a8c; --faint:#bdb4b6;
  --line:#f1e9ea; --line2:#e8dedf; --stroke:#e2d6d8; --stroke-h:#d8a9ae; --fill:#fbf5f5; --fill2:#f5ecec;
  --on-brand:#ffffff;
  --ok:#2e7d55; --ok-bg:#eef7f1; --warn:#b4603a; --warn-bg:#fbf1ec; --err:#c0453f;
  --radius:16px; --radius-s:11px;
  --shadow:0 1px 2px rgba(60,20,24,.05), 0 12px 32px rgba(120,30,40,.07);
  --shadow-s:0 1px 2px rgba(60,20,24,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select{font:inherit;color:inherit}
a{color:inherit}
.muted{color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}
.spacer{flex:1}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 18px;border-radius:999px;background:var(--brand);color:var(--on-brand);
  font-weight:600;letter-spacing:.01em;border:1px solid transparent;
  transition:background .18s,border-color .18s,transform .08s,opacity .18s,box-shadow .18s;white-space:nowrap;
  box-shadow:0 4px 12px rgba(236,27,46,.22);
}
.btn:hover{background:var(--brand-d)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.42;cursor:not-allowed;box-shadow:none}
.btn.ghost{background:var(--fill);color:var(--ink);box-shadow:none}
.btn.ghost:hover{background:var(--fill2)}
.btn.line{background:#fff;color:var(--ink);border-color:var(--stroke);box-shadow:none}
.btn.line:hover{background:var(--fill);border-color:var(--stroke-h)}
.btn.sm{padding:7px 14px;font-size:13px}
.btn.danger{background:#fff;color:var(--err);border-color:#eccac8;box-shadow:none}
.btn.danger:hover{background:#fdf4f4;border-color:#e0a8a4}

.field{display:flex;flex-direction:column;gap:6px}
.field > label{font-size:12.5px;color:var(--muted);letter-spacing:.02em}
.input{
  width:100%;padding:11px 14px;background:#fff;border-radius:var(--radius-s);
  box-shadow:inset 0 0 0 1px var(--stroke);transition:box-shadow .18s;
}
.input:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--brand)}
.input::placeholder{color:var(--faint)}
select.input{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b0a5a7' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:34px}

.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;
  font-size:12px;background:var(--fill);color:var(--muted)}
.tag.ok{background:var(--ok-bg);color:var(--ok)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}
.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}

/* ---------- 加载 ---------- */
.spinner{width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block}
.spinner.dark{border:2px solid var(--line2);border-top-color:var(--brand)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 访问门 ---------- */
.gate{min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(130% 70% at 50% -10%, var(--brand-tint) 0%, var(--bg) 60%)}
.gate-card{width:min(400px,92vw);background:var(--panel);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:34px 30px;animation:rise .5s cubic-bezier(.2,.7,.2,1);text-align:center}
.gate-card .mark{width:58px;height:58px;border-radius:50%;background:var(--brand);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:26px;margin:0 auto 16px;
  box-shadow:0 8px 20px rgba(236,27,46,.3)}
.gate-card h1{font-size:22px;margin:0 0 5px}
.gate-card p{margin:0 0 22px;color:var(--muted);font-size:13.5px}
.gate-card .field{text-align:left}
.gate-err{color:var(--err);font-size:13px;min-height:18px;margin:10px 0}

/* ---------- 外壳 / 顶栏 ---------- */
.shell{max-width:1120px;margin:0 auto;padding:0 20px}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.topbar .inner{max-width:1120px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;letter-spacing:.01em}
.brand .mark{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:800;box-shadow:0 3px 9px rgba(236,27,46,.28)}
.brand small{font-weight:500;color:var(--muted);font-size:12px;margin-left:-4px}
.tabs{display:flex;gap:2px;margin-left:10px}
.tab{padding:7px 16px;border-radius:999px;color:var(--muted);font-weight:600;transition:background .16s,color .16s}
.tab:hover{color:var(--ink)}
.tab.active{background:var(--brand-tint);color:var(--brand)}
.cart-btn{font-weight:700}

.page{padding:24px 0 72px;animation:fade .3s ease}
.section-title{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 14px;display:flex;align-items:center}
.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-s);border:1px solid var(--line);padding:18px}
.card + .card{margin-top:16px}
.hero-card{background:linear-gradient(180deg,var(--brand-tint),#fff 70%);border-color:var(--brand-weak)}

/* ---------- 账号页 ---------- */
.add-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.add-row .field{flex:1;min-width:170px}
.acct-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:2px}
.acct{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;
  display:flex;flex-direction:column;gap:9px;transition:box-shadow .2s,transform .2s;animation:rise .4s both}
.acct:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.acct-top{display:flex;align-items:center;gap:10px}
.acct .avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-tint);color:var(--brand);
  display:grid;place-items:center;font-weight:800;font-size:15px;flex:none}
.acct .ph{font-size:16px;font-weight:700;letter-spacing:.02em;flex:1;min-width:0}
.acct .kv{font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.acct .kv b{font-weight:500;color:var(--ink);word-break:break-all;text-align:right}
.acct-pay{display:flex;gap:6px;flex-wrap:wrap}
.acct-pay .tag{font-size:11.5px}
.acct-act{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.empty{padding:44px 20px;text-align:center;color:var(--faint);border:1px dashed var(--line2);border-radius:var(--radius)}

.steps{display:flex;gap:8px;margin:16px 0 2px;font-size:12.5px;color:var(--faint);flex-wrap:wrap}
.steps .s{display:flex;align-items:center;gap:6px}
.steps .s.on{color:var(--brand)}
.steps .s .n{width:19px;height:19px;border-radius:50%;background:var(--fill2);display:grid;place-items:center;font-size:11px;font-weight:700}
.steps .s.on .n{background:var(--brand);color:#fff}
.steps .arr{color:var(--faint)}

/* ---------- 点单页 ---------- */
.no-input{position:relative;display:flex;align-items:center}
.no-input .no-prefix{position:absolute;left:14px;color:var(--brand);font-weight:700;pointer-events:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.no-input .input{padding-left:44px}
.shop .shopno{background:var(--brand-tint);color:var(--brand);font-weight:700;border-radius:6px;padding:0 6px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}
.order-grid{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}
@media(max-width:860px){.order-grid{grid-template-columns:1fr}}
.shops{display:flex;flex-direction:column;gap:10px;max-height:62vh;overflow:auto;padding-right:4px}
.shop{border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 13px;cursor:pointer;
  transition:box-shadow .18s,border-color .18s,transform .12s;animation:rise .35s both}
.shop:hover{box-shadow:var(--shadow-s);transform:translateY(-1px)}
.shop.active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--brand-tint)}
.shop .nm{font-weight:700}
.shop .meta{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}

.menu-wrap{display:grid;grid-template-columns:128px 1fr;gap:14px;min-height:300px;align-items:start}
@media(max-width:560px){.menu-wrap{grid-template-columns:92px 1fr}}
.cat-rail{display:flex;flex-direction:column;gap:2px;max-height:66vh;overflow:auto}
.cat{padding:10px 11px;border-radius:9px;color:var(--muted);font-size:13.5px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;border-left:3px solid transparent}
.cat:hover{background:var(--fill)}
.cat.active{background:var(--brand-tint);color:var(--brand);font-weight:700;border-left-color:var(--brand)}
.cat .n{font-size:11px;color:var(--faint);margin-left:4px}
.cat.active .n{color:var(--brand)}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,180px));justify-content:start;
  gap:12px;max-height:66vh;overflow:auto;padding:2px}
@media(max-width:560px){.prods{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
.prod{border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden;cursor:pointer;background:#fff;
  position:relative;transition:box-shadow .2s,transform .14s;animation:rise .3s both}
.prod:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.prod .img{width:100%;height:148px;background:var(--fill) center/cover no-repeat}
.prod .nm{padding:9px 10px 2px;font-size:13.5px;font-weight:600;line-height:1.3}
.prod .pr{padding:0 10px 10px;font-size:13px;color:var(--brand);font-weight:700;display:flex;align-items:center;gap:5px}
.prod .pr b{font-size:16px}
.prod .pr .stale{color:var(--faint);text-decoration:line-through;font-weight:400;font-size:11.5px}
.prod .pr .add-mini{margin-left:auto;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;
  display:grid;place-items:center;font-size:15px;line-height:1}

/* ---------- 弹窗(居中) ---------- */
.drawer-mask{position:fixed;inset:0;background:rgba(30,12,16,.34);z-index:40}
.drawer{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,94vw);
  max-height:90vh;background:#fff;z-index:41;border-radius:20px;overflow:hidden;
  box-shadow:0 24px 70px rgba(60,20,28,.28);display:flex;flex-direction:column}
.drawer header{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}
.drawer header .img{width:58px;height:58px;border-radius:12px;background:var(--fill);background-size:cover;background-position:center;flex:none}
.drawer header h3{margin:0;font-size:18px}
.drawer .x{width:30px;height:30px;border-radius:50%;background:var(--fill);color:var(--muted);font-size:14px;
  display:grid;place-items:center;flex:none;transition:background .15s,color .15s}
.drawer .x:hover{background:var(--fill2);color:var(--ink)}
.drawer .body{flex:1;overflow:auto;padding:18px 20px}
.drawer footer{border-top:1px solid var(--line);padding:14px 20px;display:flex;align-items:center;gap:14px}
.og{margin-bottom:20px}
.og .gt{font-size:14px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.og .gt .lim{font-size:11px;color:var(--faint);font-weight:400}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 15px;border-radius:999px;background:var(--fill);color:var(--ink);font-size:13px;font-weight:500;
  transition:background .16s,box-shadow .16s,color .16s,transform .1s;position:relative}
.chip:hover{background:var(--fill2)}
.chip:active{transform:scale(.97)}
.chip.on{background:var(--brand);color:#fff}
.chip.on:hover{background:var(--brand-d)}
.chip .add{opacity:.8;font-size:11px;margin-left:4px}
.chip .rec{position:absolute;top:-7px;right:-4px;font-size:9px;background:var(--brand);color:#fff;border-radius:6px;padding:1px 5px}
.chip.on .rec{background:#fff;color:var(--brand)}
.chip[disabled]{opacity:.38;cursor:not-allowed}

.spec-rows{display:flex;flex-direction:column}
.spec-row{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line)}
.spec-row:last-child{border-bottom:0}
.spec-row.off{opacity:.4}
.spec-row .sn{font-size:14px}
.spec-row .sp{color:var(--muted);font-size:12.5px}
.spec-row .stepper{margin-left:auto;display:inline-flex;align-items:center;gap:12px}
.spec-row .stepper button{width:27px;height:27px;border-radius:50%;font-size:16px;line-height:1;
  display:grid;place-items:center;transition:background .15s,opacity .15s,box-shadow .15s}
.spec-row .stepper button.plus{background:var(--brand);color:#fff}
.spec-row .stepper button.plus:hover{background:var(--brand-d)}
.spec-row .stepper button:not(.plus){background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1px var(--stroke)}
.spec-row .stepper button:not(.plus):hover{background:var(--fill)}
.spec-row .stepper button[disabled]{opacity:.28;cursor:not-allowed}
.spec-row .stepper b{min-width:14px;text-align:center;font-weight:700;font-size:14px}
.spec-row .soldout{margin-left:auto;font-size:12px;color:var(--faint)}

.qty{display:inline-flex;align-items:center;border-radius:999px;box-shadow:inset 0 0 0 1px var(--stroke)}
.qty button{width:34px;height:34px;font-size:17px;color:var(--brand)}
.qty b{min-width:28px;text-align:center;font-weight:700}
.price-box{flex:1;min-width:0}
.price-box .big{font-size:24px;font-weight:800;letter-spacing:.01em;color:var(--brand)}
.price-box .big .upd{font-size:12px;color:var(--faint);font-weight:400;margin-left:6px}
.price-box .big.calc{color:var(--faint)}
.price-box .sub{font-size:12px;color:var(--muted);margin-top:1px}
.drawer footer .addcart{flex:0 0 auto;padding:12px 20px}

/* 优惠券 */
.coupon-list{display:flex;flex-direction:column;gap:10px}
.coupon{display:flex;align-items:center;gap:14px;border:1px solid var(--brand-weak);border-radius:var(--radius-s);
  padding:13px 14px;background:linear-gradient(90deg,var(--brand-tint),#fff 40%);animation:rise .3s both}
.coupon .amt{flex:0 0 auto;min-width:62px;text-align:center;border-right:1px dashed var(--stroke-h);padding-right:14px;color:var(--brand)}
.coupon .amt b{font-size:22px;font-weight:800;display:block;line-height:1.1}
.coupon .amt span{font-size:10px;color:var(--brand);opacity:.7}
.coupon .info{flex:1;min-width:0}
.coupon .info .cn{font-weight:700;font-size:14px}
.coupon .info .cd{font-size:12px;color:var(--muted);margin-top:2px}
.coupon .info .ct{font-size:11px;color:var(--faint);margin-top:3px}

/* 购物车 */
.cart-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.cart-item:last-child{border-bottom:0}
.cart-item .img{flex:0 0 auto;width:52px;height:52px;border-radius:10px;background:var(--fill) center/cover no-repeat}
.cart-item .ci{flex:1;min-width:0}
.cart-item .ci .nm{font-weight:600;font-size:14px}
.cart-item .ci .opt{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.3}
.cart-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.cart-line .price{color:var(--brand);font-weight:700;font-size:15px}
.cart-item .stepper{display:inline-flex;align-items:center;gap:12px}
.cart-item .stepper button{width:25px;height:25px;border-radius:50%;font-size:15px;line-height:1;display:grid;place-items:center;transition:background .15s,opacity .15s}
.cart-item .stepper button:not(.plus){background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1px var(--stroke)}
.cart-item .stepper button:not(.plus):hover{background:var(--fill)}
.cart-item .stepper button.plus{background:var(--brand);color:#fff}
.cart-item .stepper button.plus:hover{background:var(--brand-d)}
.cart-item .stepper button[disabled]{opacity:.4;cursor:not-allowed}
.cart-item .stepper b{min-width:16px;text-align:center;font-weight:700;font-size:14px}
.cart-item .del{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--fill);color:var(--faint);
  font-size:11px;display:grid;place-items:center;align-self:center;transition:background .15s,color .15s}
.cart-item .del:hover{background:var(--warn-bg);color:var(--err)}
.cart-item .del[disabled]{opacity:.4;cursor:not-allowed}
.cart-coupon{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;border-radius:var(--radius-s);
  background:var(--ok-bg);font-size:13px;color:var(--ink)}
.cart-coupon .cn{font-weight:600}
.cart-coupon b{color:var(--ok)}

/* 结算 */
.pay-panel{padding:14px 20px;border-top:1px solid var(--line);background:var(--fill)}
.pay-channels{display:flex;gap:10px}
.pay-channels .pay-ch{flex:1;font-weight:700}
.pay-ch.wx:hover{border-color:#5fbf5f;color:#2a9d2a}
.pay-ch.ali:hover{border-color:#5aa6e6;color:#1677d6}
.pay-result{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-s);padding:14px}
.pay-result .kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);padding:2px 0}
.pay-result .kv b{color:var(--ink);font-weight:500;word-break:break-all;text-align:right}
.pay-done{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.pay-done .pd-icon{width:34px;height:34px;border-radius:50%;background:var(--ok-bg);color:var(--ok);
  display:grid;place-items:center;font-size:17px;font-weight:800;flex:none}
.pay-done .pd-title{font-size:16px;font-weight:700}
.pay-done .pd-sub{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.45}

/* 订单 / 取餐码 */
.pickup{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.pk-card{background:#fff;border-radius:16px;box-shadow:var(--shadow-s);border:1px solid var(--line);padding:18px}
.pk-code{text-align:center;padding:28px 18px 24px;background:linear-gradient(180deg,var(--brand-tint),#fff);border-color:var(--brand-weak)}
.pk-label{font-size:15px;color:var(--ink);letter-spacing:.06em}
.pk-num{font-size:54px;font-weight:800;color:var(--brand);line-height:1.1;margin:8px 0 12px;letter-spacing:.04em}
.pk-tip{font-size:13.5px;color:var(--muted)}
.pk-shop{font-size:17px;font-weight:700;margin-bottom:4px}
.pk-goods{border-top:1px dashed var(--line2);margin-top:14px;padding-top:14px}
.pk-item{display:flex;align-items:center;gap:12px;padding:5px 0}
.pk-item .img{flex:0 0 auto;width:56px;height:56px;border-radius:12px;background:var(--fill) center/cover no-repeat}
.pk-ci{flex:1;min-width:0}
.pk-ci .nm{font-weight:600;font-size:15px}
.pk-ci .attr{font-size:13px;color:var(--muted);margin-top:3px}
.pk-ci .qty{font-size:13px;color:var(--muted);margin-top:3px}
.pk-pr{font-weight:700;font-size:15px;align-self:flex-start;color:var(--brand)}
.pk-coupon{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);font-size:14px}
.pk-red{color:var(--brand);font-weight:700}
.pk-total{text-align:right;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);font-size:14px;color:var(--muted)}
.pk-total b{font-size:21px;margin-left:4px;color:var(--brand)}
.pk-meta .r{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--muted);padding:6px 0}
.pk-meta .r b{color:var(--ink);font-weight:500;word-break:break-all;text-align:right}

/* ---------- 其它 ---------- */
.banner{padding:11px 14px;border-radius:var(--radius-s);font-size:13px;display:flex;align-items:center;gap:8px}
.banner.info{background:var(--fill);color:var(--muted)}
.banner.ok{background:var(--ok-bg);color:var(--ok)}
.banner.err{background:var(--warn-bg);color:var(--warn)}
.stale{color:var(--faint)}

/* ---------- 窄屏(手机) ---------- */
@media(max-width:600px){
  .topbar .inner{gap:7px;padding:9px 12px}
  .brand{font-size:15px;white-space:nowrap;gap:7px}
  .brand .mark{width:28px;height:28px;font-size:13px}
  .brand small{display:none}
  .tabs{margin-left:3px;gap:0}
  .tab{padding:6px 11px;white-space:nowrap}
  .shell{padding:0 14px}
  .btn{padding:9px 15px}
  .btn.sm{padding:6px 11px}
  .page{padding:18px 0 72px}
  .add-row .field{min-width:140px}
  .hero-card .field,.order-grid+* .field{flex:1 1 100%!important}
}

/* ---------- 过渡 ---------- */
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.fade-enter-active,.fade-leave-active{transition:opacity .22s ease}
.fade-enter-from,.fade-leave-to{opacity:0}
.slide-enter-active{transition:transform .24s cubic-bezier(.2,.7,.2,1),opacity .24s}
.slide-leave-active{transition:transform .18s ease,opacity .18s}
.slide-enter-from{transform:translate(-50%,-50%) scale(.94);opacity:0}
.slide-leave-to{transform:translate(-50%,-50%) scale(.97);opacity:0}
.mask-fade-enter-active,.mask-fade-leave-active{transition:opacity .2s}
.mask-fade-enter-from,.mask-fade-leave-to{opacity:0}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:9px;border:2px solid #fff}
::-webkit-scrollbar-thumb:hover{background:var(--faint)}
