:root{
  --ink:#2B2723;
  --bg:#FFF3DC;
  --surface:#FFFFFF;
  --paper:#FFFDF6;
  --line:#EFE6D2;
  --primary:#FFB020;
  --primary-deep:#E8930A;
  --danger:#E5534B;
  --success:#2FA862;
  --radius:22px;
  --shadow:4px 4px 0 var(--ink);
  --shadow-sm:2.5px 2.5px 0 var(--ink);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);
  background-image:radial-gradient(#F0E2C4 1.4px, transparent 1.4px);
  background-size:22px 22px;
  color:var(--ink);
  line-height:1.5;
}
.app{max-width:1120px;margin:0 auto;padding:0 18px 90px;}

/* ========== 顶部 ========== */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 0 6px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-star{
  display:grid;place-items:center;width:50px;height:50px;border-radius:16px;
  background:var(--primary);color:#fff;border:2.5px solid var(--ink);box-shadow:var(--shadow-sm);
}
.brand-name{font-size:26px;font-weight:900;letter-spacing:1px;}
.brand-sub{font-size:13px;color:#9A8E76;font-weight:500;}
.top-actions{display:flex;align-items:center;gap:10px;}
.save-hint{font-size:12px;color:#9A8E76;}

/* ========== 导航 ========== */
.tabs{
  display:flex;gap:8px;margin:18px 0 22px;flex-wrap:wrap;
  background:var(--surface);border:2.5px solid var(--ink);border-radius:16px;padding:7px;box-shadow:var(--shadow);
}
.tab{
  flex:1;min-width:96px;padding:11px 14px;border:2.5px solid transparent;border-radius:12px;
  background:transparent;color:#9A8E76;font-size:15px;font-weight:900;cursor:pointer;
  transition:transform .08s;
}
.tab:hover{color:var(--ink);}
.tab.is-active{background:var(--primary);color:#fff;border-color:var(--ink);box-shadow:var(--shadow-sm);}
.tab.is-active{transform:translateY(-1px);}

/* ========== 面板 ========== */
.panel{display:none;}
.panel.is-active{display:block;animation:pop .22s ease;}
@keyframes pop{from{opacity:0;transform:scale(.99) translateY(6px);}to{opacity:1;transform:none;}}

.card{
  background:var(--surface);border:2.5px solid var(--ink);border-radius:var(--radius);
  padding:18px;margin-bottom:16px;box-shadow:var(--shadow);
}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.card-title{font-size:18px;font-weight:900;}
.card-note{font-size:12.5px;color:#9A8E76;font-weight:500;}
.card-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* ========== 孩子卡片 ========== */
.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px;}
.child-card{
  position:relative;background:var(--surface);border:2.5px solid var(--ink);
  border-radius:24px;padding:18px 18px 16px;box-shadow:var(--shadow);
}
.child-card::before{content:"";position:absolute;top:-2.5px;left:-2.5px;right:-2.5px;height:10px;border-radius:24px 24px 0 0;background:var(--ac,var(--primary));}
.child-top{display:flex;align-items:center;gap:11px;margin-top:6px;}
.avatar{
  display:grid;place-items:center;width:52px;height:52px;border-radius:50%;flex:none;
  overflow:visible;
}
.avatar svg{display:block;border-radius:50%;box-shadow:var(--shadow-sm);}
.child-head-txt{display:flex;flex-direction:column;gap:2px;}
.child-name{font-size:19px;font-weight:900;color:var(--ac,var(--primary));line-height:1.1;}
.child-grade{font-size:12px;color:#9A8E76;background:var(--paper);border:1.5px solid var(--line);padding:1px 9px;border-radius:20px;align-self:flex-start;}
.child-stars{display:flex;align-items:baseline;gap:7px;margin:12px 0 2px;}
.star-big{font-size:38px;font-weight:900;color:var(--ac,var(--primary));font-variant-numeric:tabular-nums;line-height:1;}
.star-unit{font-size:13px;color:#9A8E76;font-weight:700;}
.child-jar{display:flex;justify-content:center;margin:6px 0 8px;}
.child-stats{display:flex;gap:8px;margin:6px 0 12px;flex-wrap:wrap;}
.stat-pill{font-size:12px;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:20px;padding:3px 10px;font-weight:500;}
.child-actions{display:flex;gap:8px;}
.child-actions .btn{flex:1;}
.child-expire{margin:2px 0 4px;font-size:12px;}
.expire-warn{display:inline-block;background:#FDECEC;color:#C0392B;border:1.5px solid #E8B4B0;border-radius:20px;padding:3px 10px;font-weight:700;}
.expire-ok{display:inline-block;color:#9A8E76;font-weight:500;}
.print-header{display:none;}

/* ========== 图表 ========== */
.chart{width:100%;overflow-x:auto;padding-top:4px;}
.chart svg{display:block;width:100%;height:auto;}
.chart .axis-label{font-size:11px;fill:#9A8E76;font-weight:700;}
.chart .bar{transition:opacity .15s;}

/* ========== 最近记录 ========== */
.log-list{display:flex;flex-direction:column;gap:9px;}
.log-item{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:14px;background:var(--paper);border:2px solid var(--line);}
.log-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--success);border:2px solid var(--ink);}
.log-dot.is-deduct{background:var(--danger);}
.log-dot.is-exchange{background:var(--primary);}
.log-body{flex:1;min-width:0;}
.log-main{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.log-sub{font-size:12px;color:#9A8E76;}
.log-delta{font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;}
.log-delta.plus{color:var(--success);}
.log-delta.minus{color:var(--danger);}
.log-delta.neutral{color:var(--primary);}
.empty-note{display:none;text-align:center;color:#9A8E76;font-size:14px;padding:22px 0;}
.empty-note.show{display:block;}

/* ========== 表单 ========== */
.form-inline{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px;}
.field{display:flex;flex-direction:column;gap:5px;min-width:150px;flex:1;}
.field-actions{flex:0 0 auto;flex-direction:row;align-items:center;gap:8px;}
.field-inline-bal{flex-direction:row;align-items:center;gap:8px;min-width:120px;}
.field-label{font-size:12px;color:#9A8E76;font-weight:700;}
.bal-num{font-size:22px;color:var(--primary-deep);font-variant-numeric:tabular-nums;}

input,select{
  font:inherit;color:var(--ink);background:var(--surface);
  border:2px solid var(--ink);border-radius:12px;padding:9px 12px;width:100%;min-height:44px;
  font-weight:500;
}
input:focus,select:focus{outline:3px solid var(--primary);outline-offset:1px;}
input[type="color"].color-input{padding:4px;cursor:pointer;}
input[type="color"].color-input::-webkit-color-swatch-wrapper{padding:2px;}
input[type="color"].color-input::-webkit-color-swatch{border:2px solid var(--ink);border-radius:9px;}
.input{width:auto;}

/* ========== 按钮 ========== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:2.5px solid var(--ink);border-radius:12px;padding:9px 16px;min-height:44px;
  font:inherit;font-weight:900;font-size:14px;cursor:pointer;
  box-shadow:var(--shadow-sm);transition:transform .06s,box-shadow .06s;white-space:nowrap;
}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-ghost{background:var(--surface);color:var(--ink);}
.btn-sm{min-height:36px;padding:6px 13px;font-size:13px;border-radius:10px;box-shadow:2px 2px 0 var(--ink);}
.file-btn{cursor:pointer;}
.file-btn input{display:none;}

/* ========== 表格 ========== */
.table-wrap{overflow-x:auto;border:2px solid var(--line);border-radius:14px;}
.table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px;background:var(--surface);}
.table th,.table td{padding:10px 12px;border-bottom:1.5px solid var(--line);text-align:left;vertical-align:middle;}
.table th{color:#9A8E76;font-weight:900;font-size:12.5px;background:var(--paper);}
.table th.num,.table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.table th.ops,.table td.ops{text-align:right;white-space:nowrap;}
.table .ops .btn{margin-left:6px;}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:20px;border:1.5px solid transparent;}
.tag.t-learn{background:#E7ECFE;border-color:#BCC8FA;color:#3A57C8;}
.tag.t-life{background:#FDF0DD;border-color:#F2D9AE;color:#B4631F;}
.tag.t-home{background:#E4F5EC;border-color:#BDE4CD;color:#22734B;}
.tag.t-sport{background:#E2F3F6;border-color:#B9E2EA;color:#1F7A8C;}
.tag.t-reward{background:#FBE7E3;border-color:#F2C9C0;color:#B44A37;}
.tag.t-low{background:#E4F5EC;border-color:#BDE4CD;color:#22734B;}
.tag.t-mid{background:#FDF0DD;border-color:#F2D9AE;color:#B4631F;}
.tag.t-high{background:#EFE9FC;border-color:#D9CFF5;color:#6A49C4;}

/* ========== 商店 ========== */
.shop-front{margin-bottom:16px;}
.awning{
  position:relative;text-align:center;padding:26px 12px 14px;border:2.5px solid var(--ink);
  border-radius:24px 24px 6px 6px;
  background:repeating-linear-gradient(90deg,#FF8A7A 0 26px,#FFF3DC 26px 52px);
  box-shadow:var(--shadow);
}
.awning::after{
  content:"";position:absolute;left:0;right:0;bottom:-14px;height:14px;
  background:
    radial-gradient(circle at 26px 0, #FF8A7A 15px, transparent 15.5px) 0 0/52px 14px repeat-x;
}
.awning-text{
  display:inline-block;background:#fff;border:2.5px solid var(--ink);border-radius:14px;
  padding:6px 22px;font-size:22px;font-weight:900;box-shadow:var(--shadow-sm);color:var(--ink);
}
.shop-bar{margin-top:20px;}
.shop-who{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;}
.shop-who .field{max-width:220px;}
.shop-tip{margin-top:10px;font-size:13px;color:#9A8E76;font-weight:500;}

.shelves{margin-bottom:16px;}
.shelf{margin-bottom:18px;}
.shelf-label{
  display:inline-block;font-size:14px;font-weight:900;color:#fff;
  padding:5px 16px;border:2.5px solid var(--ink);border-radius:12px;box-shadow:var(--shadow-sm);
  margin-bottom:12px;
}
.shelf-小额{background:#2FA862;}
.shelf-中等{background:#E8930A;}
.shelf-大额{background:#7C5CD6;}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;}

.product{
  position:relative;background:var(--surface);border:2.5px solid var(--ink);border-radius:18px;
  padding:16px 12px 14px;text-align:center;box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;gap:7px;transition:transform .08s;
}
.product:hover{transform:translateY(-3px);}
.product-ops{position:absolute;top:6px;right:6px;display:flex;gap:4px;}
.mini{
  width:24px;height:24px;border-radius:8px;border:2px solid var(--ink);background:var(--paper);
  font-size:11px;font-weight:900;cursor:pointer;line-height:1;color:var(--ink);
}
.mini.danger{background:var(--danger);color:#fff;}
.product-icon{
  width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  background:#FFF4D6;border:2.5px solid var(--ink);
}
.product-name{font-size:14px;font-weight:900;line-height:1.25;min-height:36px;display:flex;align-items:center;}
.product-price{display:flex;align-items:center;gap:4px;font-size:18px;font-weight:900;font-variant-numeric:tabular-nums;}
.product-buy{width:100%;}
.product.is-poor{opacity:.6;}
.product.is-poor .product-buy{background:#C9C2B4;}

/* ========== 数据管理 ========== */
.data-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.help-list{margin:0;padding-left:20px;color:#9A8E76;font-size:13px;display:flex;flex-direction:column;gap:5px;}

/* ========== 提示 ========== */
.toast{
  position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);
  background:var(--ink);color:#fff;padding:12px 22px;border-radius:14px;font-size:14px;font-weight:700;
  border:2.5px solid #fff;box-shadow:4px 4px 0 rgba(0,0,0,.25);opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s;z-index:50;max-width:86vw;text-align:center;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ========== 打印：三娃专属卡片打在一张 A4 ========== */
@media print{
  @page{size:A4 portrait;margin:10mm;}
  body{background:#fff !important;background-image:none !important;}
  .app{max-width:none;padding:0;}
  /* 只保留积分榜标题与三张孩子卡片，其余全部隐藏 */
  .topbar,.tabs,.dash-lower,.child-actions,.child-jar,.child-stats,
  .card-tools,.card .form-inline,.table-wrap,.toast,.btn,.shop-front,.mgmt{display:none !important;}
  .print-header{display:block !important;text-align:center;margin-bottom:6mm;}
  .print-title{font-size:26px;font-weight:900;letter-spacing:1px;}
  .print-date{font-size:12px;color:#555;margin-top:3px;}
  .panel{display:none !important;}
  #panel-dash{display:block !important;}
  /* 三张卡并排，紧凑内容，确保单页 A4 放下 */
  .grid-cards{grid-template-columns:repeat(3,1fr);gap:6mm;margin:0;}
  .child-card{box-shadow:none;border:2.5px solid #2B2723;break-inside:avoid;text-align:center;padding:9mm 4mm 7mm;}
  .child-card::before{border-radius:22px 22px 0 0;}
  .child-top{flex-direction:column;gap:4px;}
  .avatar{margin:0 auto;}
  .avatar svg{width:44px !important;height:44px !important;}
  .child-head-txt{align-items:center;}
  .child-name{font-size:20px;}
  .child-grade{align-self:center;}
  .child-stars{justify-content:center;margin:4px 0 2px;}
  .star-big{font-size:32px;}
  .child-expire{font-size:11px;margin-top:4px;}
  .expire-warn,.expire-ok{white-space:normal;}
  .card,.product{box-shadow:none;}
}

/* ========== 响应式 ========== */
@media (max-width:820px){
  .grid-cards{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .topbar{flex-direction:column;align-items:flex-start;gap:10px;}
  .save-hint{font-size:11px;}
}
@media (max-width:520px){
  .app{padding:0 12px calc(70px + env(safe-area-inset-bottom));}
  .brand-name{font-size:21px;}
  .brand-star{width:42px;height:42px;border-radius:14px;}
  .tabs{position:sticky;top:8px;z-index:40;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;flex-wrap:nowrap;}
  .tab{min-width:0;flex:none;font-size:13px;padding:9px 12px;white-space:nowrap;}
  .field{min-width:100%;}
  .form-inline{flex-wrap:wrap;}
  .shelf-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .product-name{font-size:13px;}
  .card{padding:14px;}
  .child-card{padding:14px;}
  .child-top{flex-direction:row !important;align-items:center;}
  .child-stars{justify-content:center;}
  .table-wrap{overflow-x:auto;}
  .toast{max-width:92vw;}
}
@media (max-width:380px){
  .grid-cards{gap:12px;}
  .shelf-grid{grid-template-columns:1fr;}
  .product-name{min-height:0;}
  .shop-who .field{max-width:100%;}
}

/* ========== 触控与 App 化体验 ========== */
*{-webkit-tap-highlight-color:transparent;}
html{-webkit-text-size-adjust:100%;}
body{overscroll-behavior-y:contain;-webkit-font-smoothing:antialiased;}
@media (pointer:coarse){
  .btn:active,.tab:active,.icon-opt:active{transform:none;box-shadow:var(--shadow-sm);}
  .toast{bottom:calc(28px + env(safe-area-inset-bottom));}
}

/* 图标选择库 */
.icon-picker-wrap{margin:10px 0 16px;}
.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:8px;margin-top:8px;}
.icon-opt{display:grid;place-items:center;width:100%;aspect-ratio:1;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;padding:4px;transition:transform .08s;}
.icon-opt:active{transform:scale(.93);}
.icon-opt.sel{border-color:var(--primary);background:#EAF0FF;box-shadow:2px 2px 0 var(--ink);}

/* 分段切换（每日/每周） */
.seg{display:inline-flex;background:var(--paper);border:2px solid var(--line);border-radius:20px;padding:3px;gap:2px;}
.seg-btn{border:none;background:transparent;padding:4px 14px;border-radius:16px;font-size:13px;font-weight:700;color:#9A8E76;cursor:pointer;}
.seg-btn.is-on{background:var(--primary);color:#fff;box-shadow:1.5px 1.5px 0 var(--ink);}

/* 登录遮罩 */
.login-mask{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:#fdf6ec;background-image:radial-gradient(#f0e4d0 1.5px, transparent 1.5px);background-size:22px 22px;padding:16px;}
.login-mask.show{display:grid;}
.login-box{width:100%;max-width:360px;background:#fff;border:2.5px solid var(--ink);border-radius:24px;box-shadow:6px 6px 0 var(--ink);padding:26px 22px;text-align:center;}
.login-star{display:block;margin-bottom:8px;}
.login-title{font-size:22px;font-weight:900;margin:4px 0;}
.login-sub{font-size:13px;color:#9A8E76;margin:0 0 16px;}
.login-view{display:flex;flex-direction:column;gap:10px;}
.login-field{display:block;text-align:left;}
.login-field .field-label{font-size:12px;}
.login-field input{width:100%;padding:10px;border:2px solid var(--line);border-radius:10px;font-size:15px;}
.btn-block{width:100%;padding:12px;font-size:16px;}
.login-tip{font-size:12px;color:#9A8E76;margin:10px 0 0;line-height:1.5;}

/* 顶栏用户 */
.user-chip{font-size:13px;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:6px;}
.role-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;border:1.5px solid var(--line);background:var(--paper);}
.role-tag.super{background:#FFE08A;border-color:#E9B949;}
.role-tag.admin{background:#E4E0F5;border-color:#A79BE0;}

/* ========== 兑换卡片设计系统 ========== */
.xcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px;}
.xcard{position:relative;background:#fff;border:2.5px solid var(--ink);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;}
.xcard-top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-bottom:2px dashed var(--line);}
.xcard-tag{font-size:12px;font-weight:900;color:var(--ink);}
.xcard-ribbon{position:absolute;top:14px;right:-36px;transform:rotate(45deg);background:var(--cc,#FFB020);color:#fff;font-size:11px;font-weight:900;padding:4px 36px;border:2px solid var(--ink);box-shadow:0 2px 0 rgba(0,0,0,.18);z-index:2;}
.xcard-body{display:flex;flex-direction:column;align-items:center;gap:7px;padding:18px 14px 14px;}
.xcard-avatar{display:flex;}
.xcard-who{text-align:center;}
.xcard-name{font-size:20px;font-weight:900;color:var(--cc,#4C6EF5);}
.xcard-grade{display:block;font-size:12px;color:#9A8E76;}
.xcard-prize{display:flex;align-items:center;gap:8px;background:var(--paper);border:2px solid var(--line);border-radius:14px;padding:9px 14px;margin-top:2px;max-width:100%;}
.xcard-prizename{font-size:15px;font-weight:700;line-height:1.2;}
.xcard-meta{display:flex;gap:14px;font-size:13.5px;font-weight:900;font-variant-numeric:tabular-nums;margin-top:4px;}
.xcard-cost{color:var(--danger);}
.xcard-bal{color:var(--cc,#4C6EF5);}
.xcard-date{display:flex;align-items:center;gap:8px;font-size:11px;color:#9A8E76;}
.xcard-seq{font-size:11px;font-weight:900;background:var(--cc,#FFE08A);color:var(--ink);padding:1px 9px;border-radius:20px;border:1.5px solid var(--ink);}
.xcard-foot{padding:9px 14px;border-top:2px dashed var(--line);display:flex;justify-content:center;}
.xcard-foot .btn{width:100%;}
@media(max-width:520px){.xcard-grid{grid-template-columns:1fr 1fr;gap:12px;}.xcard-prize{padding:7px 10px;}}
@media(max-width:380px){.xcard-grid{grid-template-columns:1fr;}.xcard-prize{padding:7px 10px;}}

/* 打印单张/多张兑换卡片：只显示 #printSingleCard 内的卡片 */
@media print{
  @page{size:A4 portrait;margin:12mm;}
  body.print-single .app, body.print-single .toast, body.print-single .login-mask{display:none !important;}
  body.print-single #printSingleCard{display:block !important;}
  body.print-single #printSingleCard .xcard{width:158mm;margin:0 auto 8mm;box-shadow:none;page-break-inside:avoid;}
  body.print-single .xcard-foot{display:none !important;}
}

/* ========== 加分打卡：今日已加统计 ========== */
.today-tally{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:12px;color:#9A8E76;font-weight:700;background:var(--paper);border:1.5px solid var(--line);border-radius:20px;padding:3px 12px;white-space:nowrap;}
.today-tally .tally-star{color:#F59E0B;}
.today-tally b{color:var(--primary-deep);font-weight:900;}

/* ========== 扣分确认动画 ========== */
.confirm-mask{position:fixed;inset:0;z-index:120;display:none;place-items:center;background:rgba(43,39,35,.38);padding:16px;animation:cfFade .15s;}
.confirm-mask.show{display:grid;}
@keyframes cfFade{from{opacity:0}to{opacity:1}}
.confirm-box{width:100%;max-width:340px;background:#fff;border:2.5px solid var(--ink);border-radius:22px;box-shadow:6px 6px 0 var(--ink);padding:24px 20px;text-align:center;}
.confirm-mask.show .confirm-box{animation:cfPop .28s cubic-bezier(.2,.9,.3,1.15);}
@keyframes cfPop{from{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}
.confirm-face{display:block;margin:0 auto 4px;}
.confirm-title{font-size:20px;font-weight:900;margin:4px 0 6px;color:var(--ink);}
.confirm-text{font-size:15px;font-weight:700;margin:0;}
.confirm-reason{font-size:12px;color:#9A8E76;margin:6px 0 18px;}
.confirm-actions{display:flex;gap:10px;}
.confirm-actions .btn{flex:1;}

/* 扣分成功飘星动画 */
.deduct-anim{position:fixed;left:50%;top:42%;transform:translate(-50%,0);z-index:130;font-size:58px;font-weight:900;color:var(--danger);text-shadow:3px 3px 0 rgba(0,0,0,.12);pointer-events:none;animation:deductFloat 1.15s ease-out forwards;}
@keyframes deductFloat{0%{opacity:0;transform:translate(-50%,16px) scale(.7);}20%{opacity:1;transform:translate(-50%,0) scale(1.15);}100%{opacity:0;transform:translate(-50%,-48px) scale(.95);}}
