
:root{--blue:#2479df;--ink:#26354f;--muted:#708198;--bg:#f4f8ff;--green:#15925d;--red:#e34759;--stroke:#e2eafa}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.5 system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.wrap{max-width:1300px;margin:auto;padding:26px 20px 70px}.top{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:20px}.brand h1{font-size:29px;margin:0;color:#164c95}.brand p{margin:5px 0 0;color:var(--muted)}.toolbar{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid #cdddf6;padding:10px 15px;border-radius:12px;color:#27508b;background:white}.btn:hover{background:#eaf2ff}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{border-radius:18px;padding:20px;background:white;border:1px solid var(--stroke);box-shadow:0 4px 22px #34588a0b}.stat .k{color:var(--muted);font-size:14px}.stat strong{font-size:32px;display:block;margin:6px 0 2px;line-height:1.25;font-variant-numeric:tabular-nums}.stat small{color:#8493a8}.stat.balance{background:linear-gradient(125deg,#1768cf,#43a4f3);border:0;color:#fff}.stat.balance .k,.stat.balance small{color:#e9f4ff}.stat .positive{color:var(--green)}.stat .negative{color:var(--red)}.panel{background:#fff;border:1px solid var(--stroke);border-radius:18px;padding:20px;margin-top:18px;box-shadow:0 4px 22px #34588a0b}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:15px}.panel h2{font-size:19px;margin:0}.sub{font-size:13px;color:var(--muted)}.tabs{display:flex;gap:5px;background:#edf3fc;padding:5px;border-radius:12px}.tabs button{border:0;border-radius:9px;background:transparent;color:#547098;padding:7px 17px}.tabs button.active{background:#fff;color:#1768cf;box-shadow:0 1px 5px #bdd0ed80;font-weight:700}.period-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.period-nav button{border:1px solid #d9e6fa;background:#fff;border-radius:9px;padding:6px 10px}.period-nav span{min-width:160px;text-align:center;font-weight:600}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 18px}.summary>div{background:#f5f9ff;border-radius:12px;padding:14px}.summary label{display:block;color:var(--muted);font-size:13px}.summary b{display:block;font-size:23px}.chart{display:flex;align-items:flex-end;gap:8px;height:170px;overflow:hidden;padding:10px 4px 0;border-bottom:1px solid #dce6f4}.barcol{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:4px;height:100%}.bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%;height:120px}.bar{min-width:5px;max-width:25px;flex:1;border-radius:5px 5px 0 0}.bar.in{background:#35b988}.bar.out{background:#f17783}.barcol span{font-size:11px;color:#7889a5;white-space:nowrap}.legend{font-size:12px;color:#697a93;margin-top:8px}.dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px}
.group{border-radius:16px;padding:16px;background:#f8fbff;border:1px solid #e2eefa}.group h3{margin:0 0 12px;font-size:17px}.group.plus{background:#f5fef9;border-color:#d2f2df}.group.minus{background:#fff8f8;border-color:#fbdde1}.rulecats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cat{background:#fff;border:1px solid #e5edf8;border-radius:12px;padding:12px}.cat h4{margin:0 0 8px;color:#2369c2;font-size:15px}.group.minus .cat h4{color:#cc4257}.item{border:0;border-bottom:1px solid #eef2f8;background:transparent;width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 3px;color:var(--ink);transition:background .15s}.item:last-child{border-bottom:0}.item:hover{background:#f3f8ff}.item .name{flex:1;font-size:13px}.pts{white-space:nowrap;font-weight:800;font-size:14px;border-radius:8px;padding:5px 8px;background:#e9f9f0;color:var(--green)}.minus .pts{background:#fff0f1;color:var(--red)}.rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.reward{background:#f6faff;border:1px solid #dfeaf9;border-radius:12px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.reward b{display:block}.reward small{color:#6f8098}.reward button{background:#fff;border:1px solid #c8dafa;color:#2769b7;border-radius:9px;padding:7px 13px;white-space:nowrap}.reward button:hover{background:#e5f1ff}.reward button:disabled{opacity:.42;cursor:not-allowed}.list-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.list-head select{padding:7px 12px;border:1px solid #dce6f5;border-radius:9px;background:white}.history{max-height:400px;overflow:auto}.history-row{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid #edf1f7}.history-row:last-child{border:0}.history-row .desc{flex:1;min-width:0}.history-row .desc b{font-size:14px}.history-row .desc small{display:block;color:#8b97a8;font-size:12px}.history-row strong{white-space:nowrap}.history-row button{border:0;background:#f1f5fb;border-radius:7px;padding:5px 9px;color:#576a83}.history-row button:hover{background:#e0ebfa}.empty{text-align:center;padding:35px 12px;color:#92a0b2}.modalbg{position:fixed;inset:0;background:#1d305a77;z-index:99;display:flex;align-items:center;justify-content:center;padding:20px}.modal{max-width:390px;background:#fff;border-radius:18px;padding:25px;width:100%;box-shadow:0 10px 55px #12264240}.modal h3{margin:0 0 10px;font-size:21px}.modal p{color:#60728b;line-height:1.8}.modalactions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.foot{color:#8390a6;font-size:12px;text-align:center;margin-top:25px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#253c5c;color:#fff;padding:10px 22px;border-radius:11px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:101}#toast.show{opacity:1}@media(max-width:1050px){.rulecats{grid-template-columns:1fr}.rewards{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.wrap{padding:16px 12px 50px}.brand h1{font-size:23px}.cards,.summary{grid-template-columns:repeat(2,1fr);gap:9px}.stat{padding:15px}.stat strong{font-size:25px}.panel{padding:15px}.rules,.rewards{grid-template-columns:1fr}.tabs button{padding:7px 10px}.period-nav span{min-width:128px}.panel-head{align-items:flex-start}.rulecats{grid-template-columns:1fr}}

/* 服务端管理 */
.authscreen{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(130deg,#e2f2ff,#f7fff8)}.authcard{max-width:420px;width:100%;padding:32px;border-radius:22px;background:white;box-shadow:0 15px 55px #29447623}.authcard h1{font-size:24px;margin:0 0 8px}.authcard p{color:#728198}.authcard label{display:block;margin:14px 0 5px}.field{width:100%;border:1px solid #cfdff0;padding:12px;border-radius:11px}.authcard .btn{width:100%;margin-top:18px}.warning{color:#d5364e}.logout{color:#c93f51}.filter-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-row input{padding:7px 10px;border:1px solid #dce6f5;border-radius:9px}

[hidden]{display:none!important}
.rules{
    display: grid;
    gap: 20px;
}
.reason-grids{display:grid;grid-template-columns:1fr 1fr;gap:16px}.reason-box{border:1px solid #e3ebf7;border-radius:14px;padding:16px;background:#fcfdff;min-width:0}.reason-box h3{font-size:17px;margin:0 0 12px}.reason-box h3 small{font-weight:400;font-size:12px;color:#8493a8}.reason-row{padding:10px 0;border-bottom:1px solid #edf1f7}.reason-row:last-child{border-bottom:0}.reason-top{display:flex;align-items:center;gap:8px}.reason-rank{font-weight:800;color:#94a4ba;min-width:24px}.reason-name{flex:1;font-size:13px;overflow-wrap:anywhere}.reason-score{font-weight:800;white-space:nowrap}.reason-count{font-size:12px;color:#8290a5;margin:5px 0 5px 32px}.reason-track{height:6px;margin-left:32px;background:#eaf1f9;border-radius:9px;overflow:hidden}.reason-fill{height:100%;border-radius:9px;background:#2bb77d}.reason-box.neg .reason-fill{background:#ef7582}.reason-box.neg .reason-score{color:#dd4358}.reason-box.pos .reason-score{color:#15925d}@media(max-width:700px){.reason-grids{grid-template-columns:1fr}.reason-box{padding:12px}}
.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.insight-card{padding:18px 20px;border:1px solid #e5edf7;background:#fafcff;border-radius:14px;min-width:0}.insight-card h3{font-size:16px;margin:0 0 12px}.insight-card p,.insight-conclusion p{font-size:14px;color:#455670;line-height:1.95;margin:0;overflow-wrap:anywhere}.insight-positive{border-left:3px solid #2ab985}.insight-negative{border-left:3px solid #ed7783}.insight-conclusion{border:1px solid #e6ebf4;border-radius:12px;padding:16px 20px;background:#fff}.insight-conclusion strong{display:block;font-size:15px;margin-bottom:7px}@media(max-width:700px){.insight-grid{grid-template-columns:1fr}.insight-card,.insight-conclusion{padding:14px}}
/* 英语阅读独立奖惩模块 */
.english-bonus-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.english-bonus-card{padding:17px;border:1px solid #e2eafa;border-radius:16px;background:#fbfdff;min-width:0}
.english-bonus-card h3{margin:0 0 13px;font-size:17px}
.english-bonus-card.bonus-plus{border-color:#b7ead5;background:#f7fffb}
.english-bonus-card.bonus-minus{border-color:#ffd3d8;background:#fff9fa}
.english-bonus-card .item{width:100%;background:white}
@media(max-width:700px){.english-bonus-grid{grid-template-columns:1fr}}

/* 跳绳体测 */
.jump-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.jump-fields label{font-size:13px;color:#536179;font-weight:600}.jump-fields input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #d6e0ed;border-radius:10px;font:inherit;background:white;box-sizing:border-box}.jump-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px}.jump-preview{font-size:14px;color:#425471}.jump-history-title{margin:22px 0 10px;font-weight:700}.jump-history .jump-item{border-top:1px solid #ecf0f6;padding:12px 0;display:flex;justify-content:space-between;gap:12px;color:#465672;font-size:13px}.jump-history .jump-item strong{color:#137b55}.jump-history .jump-item.fail strong{color:#a66b18}@media(max-width:700px){.jump-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.jump-actions{align-items:stretch;flex-direction:column}}

/* 移动端排版优化：仅影响宽度不超过 700px 的设备 */
@media (max-width:700px){
  body{font-size:13px;line-height:1.55}
  .wrap{padding:12px 10px 40px}
  .top{gap:10px;margin-bottom:12px}
  .brand h1{font-size:19px;line-height:1.35}
  .brand p{font-size:12px}
  .toolbar{gap:6px}
  .btn{font-size:12px;padding:8px 11px;border-radius:9px}
  .cards,.summary{gap:8px}
  .stat{padding:12px;border-radius:13px}
  .stat .k{font-size:11px}
  .stat strong{font-size:22px;margin:4px 0}
  .stat small{font-size:11px}
  .panel{margin-top:12px;padding:12px;border-radius:14px}
  .panel-head{gap:8px;margin-bottom:11px;align-items:center}
  .panel h2{font-size:14px;line-height:1.4}
  .sub{font-size:9px;line-height:1.55;margin-top:11px}
  .panel-head .sub,.panel-head sub{margin-top:0;gap:8px}
  .tabs{gap:3px;padding:3px;width:100%}
  .tabs button{font-size:12px;padding:6px 9px;width:33%}
  .period-nav{gap:6px}
  .period-nav button{font-size:12px;padding:5px 8px}
  .period-nav span{font-size:12px;min-width:105px}
  .summary>div{padding:10px;border-radius:10px}
  .summary label{font-size:11px}
  .summary b{font-size:19px}
  .chart{height:145px}
  .bars{height:100px}
  .group{padding:11px;border-radius:12px}
  .group h3{font-size:14px;margin-bottom:9px}
  .cat{padding:9px;border-radius:10px}
  .cat h4{font-size:12px}
  .item{gap:6px;padding:9px 2px}
  .item .name{font-size:11px;line-height:1.5;overflow-wrap:anywhere}
  .pts{font-size:11px;padding:4px 6px}
  .reward{padding:11px;gap:7px;border-radius:10px}
  .reward b{font-size:12px}
  .reward small{font-size:11px}
  .reward button{font-size:12px;padding:6px 9px}
  .list-head{gap:7px}
  .list-head select,.filter-row input{font-size:12px;padding:6px 8px}
  .history-row{gap:7px;padding:9px 2px}
  .history-row .desc b{font-size:12px}
  .history-row .desc small{font-size:11px}
  .history-row strong{font-size:13px}
  .history-row button{font-size:12px;padding:5px 7px}
  .reason-box{padding:11px}
  .reason-box h3{font-size:14px}
  .reason-box h3 small{font-size:11px}
  .reason-row{padding:8px 0}
  .reason-name{font-size:11px}
  .reason-score{font-size:13px}
  .reason-count{font-size:11px}
  .insight-card,.insight-conclusion{padding:11px}
  .insight-card h3{font-size:14px}
  .insight-card p,.insight-conclusion p{font-size:11px;line-height:1.8}
  .insight-conclusion strong{font-size:13px}
  .english-bonus-card{padding:11px;border-radius:12px}
  .english-bonus-card h3{font-size:14px;margin-bottom:8px}
  .jump-fields{gap:9px}
  .jump-fields label{font-size:12px}
  .jump-fields input{font-size:14px;padding:9px;margin-top:5px}
  .jump-actions{gap:9px;margin-top:12px}
  .jump-preview{font-size:12px}
  .jump-history-title{font-size:13px;margin-top:16px}
  .jump-history .jump-item{font-size:12px;gap:8px;padding:9px 0}
  .modal{padding:17px;border-radius:14px}
  .modal h3{font-size:17px}
  .modal p{font-size:13px}
  .authcard{padding:20px}
  .authcard h1{font-size:19px}
  .authcard p,.authcard label{font-size:12px}
  .field{font-size:14px;padding:10px}
  .foot{font-size:11px}
}
