
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--pink:#ff8fbd;--pink2:#ffd3e7;--blue:#9ed9ff;--blue2:#e9f6ff;--ink:#2d3358;--muted:#737a9d;--gold:#ffd66e}
html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:linear-gradient(160deg,#ffd9ec 0%,#fff0f8 34%,#dff2ff 73%,#fff8dc 100%);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 3px),radial-gradient(circle,rgba(255,124,178,.32) 0 2px,transparent 3px),radial-gradient(circle,rgba(94,188,255,.30) 0 2px,transparent 3px);background-size:54px 54px,84px 84px,128px 128px;animation:bgmove 16s linear infinite}
@keyframes bgmove{from{background-position:0 0,0 0,0 0}to{background-position:54px 54px,-84px 84px,128px -128px}}
.app{max-width:460px;margin:0 auto;min-height:100vh;padding:10px 10px 22px;position:relative;z-index:1}
.header{border:4px solid #fff;border-radius:26px;background:rgba(255,255,255,.58);padding:14px 10px 12px;text-align:center;box-shadow:0 14px 34px rgba(82,99,158,.16),inset 0 0 22px rgba(255,255,255,.86)}
.badge{display:inline-block;padding:5px 12px;border-radius:999px;background:#fff;border:2px solid #ffc2dd;color:#f05c9b;font-size:12px;font-weight:1000;letter-spacing:.08em}
h1{margin:5px 0 4px;line-height:1;font-size:38px;font-weight:1000;color:#fff;-webkit-text-stroke:1.6px #586ab2;text-shadow:0 3px 0 #ffb4d4,0 6px 0 #68d3ef,0 9px 18px rgba(55,70,130,.2)}
.subtitle{display:inline-block;transform:rotate(-1deg);padding:6px 18px;border:2px solid #bb6b89;border-radius:10px 10px 18px 18px;background:linear-gradient(180deg,#fff7fb,#ffc2d8);font-weight:1000;color:#b93a64;letter-spacing:.12em;font-size:19px}
.card{border:4px solid #fff;border-radius:26px;background:rgba(255,255,255,.58);box-shadow:0 14px 35px rgba(82,99,158,.16);backdrop-filter:blur(8px);padding:10px;margin-top:10px}
.input{width:100%;border:2px solid #ffd0e4;border-radius:16px;background:rgba(255,255,255,.9);padding:12px 14px;font:inherit;font-weight:900;color:var(--ink);outline:none}
.input:focus{border-color:#ff8fbd;box-shadow:0 0 0 4px rgba(255,143,189,.16)}
.btn{border:0;border-radius:16px;padding:12px 14px;font:inherit;font-weight:1000;cursor:pointer;box-shadow:0 8px 16px rgba(60,70,110,.14)}
.btn-main{background:linear-gradient(180deg,#ff9bc8,#ec5797);color:#fff}.btn-soft{background:#fff;color:#65719d}.btn-blue{background:linear-gradient(180deg,#c9ecff,#86ceff);color:#49639f}.btn-gold{background:linear-gradient(180deg,#fff1a8,#ffd16a);color:#8d6314}.btn:disabled{opacity:.5;cursor:not-allowed}
.login{display:grid;gap:8px}.userbar{display:none;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px;border-radius:18px;background:rgba(255,255,255,.82);border:2px solid #ffd0e4;margin-bottom:10px;font-weight:1000}.userbar.show{display:grid}.userbar small{display:block;color:#8a92ad;font-size:12px;margin-top:2px}
.machine{border:4px solid #253052;border-radius:26px;background:linear-gradient(135deg,#ffc0d8,#ffd7e9 54%,#f6a9cc);padding:10px;box-shadow:inset 0 0 24px rgba(255,255,255,.55),0 16px 32px rgba(70,60,120,.14)}
.strip{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;border:2px solid #253052;border-radius:16px;background:rgba(255,255,255,.88);padding:8px 6px;font-size:17px;font-weight:1000}
.dot{width:18px;height:18px;border-radius:50%;box-shadow:inset 2px 3px 8px rgba(255,255,255,.8);border:1px solid rgba(50,60,90,.22)}.d1{background:#91d0ff}.d2{background:#ffd267}.d3{background:#ff78b2}
.glass{height:432px;position:relative;overflow:hidden;border:3px solid rgba(45,49,79,.92);border-radius:21px;background:linear-gradient(115deg,rgba(255,255,255,.62) 0 13%,rgba(255,255,255,.12) 13% 23%,transparent 23% 58%,rgba(255,255,255,.30) 64%,transparent 80%),radial-gradient(circle at 50% 24%,rgba(255,255,255,.78),transparent 45%),linear-gradient(180deg,#dff2ff,#fff5fb 56%,#dedcff);box-shadow:inset 0 0 55px rgba(255,255,255,.95)}
.glass::after{content:"";position:absolute;left:-3%;right:-3%;bottom:-4px;height:100px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.86));border-radius:48% 48% 0 0;z-index:2;pointer-events:none}
.status{position:absolute;z-index:30;left:50%;top:10px;transform:translateX(-50%);white-space:nowrap;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.82);border:2px solid #fff;color:#6371a4;font-size:12px;font-weight:1000;box-shadow:0 5px 12px rgba(70,70,120,.12)}
.track{position:absolute;z-index:12;left:14%;right:14%;top:42px;height:11px;border-radius:999px;background:linear-gradient(180deg,#b6b9ca,#69708d);border:1.5px solid #4d536c}
.chute{position:absolute;z-index:18;left:18px;bottom:16px;width:94px;height:72px;border:3px solid #ff9ac0;border-radius:25px 25px 10px 10px;background:rgba(255,244,249,.86);box-shadow:inset 0 -14px 18px rgba(255,160,197,.16),0 7px 14px rgba(70,70,100,.13)}.chute::after{content:"";position:absolute;left:20px;right:20px;bottom:14px;height:28px;border-radius:0 0 12px 12px;background:#3c456b}
.note{position:absolute;z-index:24;left:15px;top:140px;transform:rotate(-7deg);width:94px;text-align:center;padding:11px 8px;border-radius:8px;border:1.5px solid #e4c76d;background:#fff6bd;font-size:12px;font-weight:1000;box-shadow:0 8px 14px rgba(70,50,80,.13)}
.doll-layer{position:absolute;inset:88px 8px 28px;z-index:8}.doll{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;animation:float 3.2s ease-in-out infinite}@keyframes float{0%,100%{margin-top:0;rotate:-1deg}50%{margin-top:-4px;rotate:1deg}}
.doll img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(70,60,100,.16));user-select:none;pointer-events:none}.doll.empty{filter:grayscale(1);opacity:.23}.stock{position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);white-space:nowrap;padding:1px 6px;border-radius:999px;background:#fff;border:1px solid #ffc2dd;color:#f05c9b;font-size:10px;font-weight:1000;box-shadow:0 3px 7px rgba(60,60,90,.1)}
.claw{position:absolute;z-index:28;left:50%;top:64px;width:84px;transform:translateX(-50%);transition:left .32s cubic-bezier(.2,.8,.2,1),top .52s cubic-bezier(.2,.8,.2,1);pointer-events:none}.wire{width:3px;height:64px;margin:0 auto;border-radius:999px;background:linear-gradient(90deg,#555b72,#d7dbe8,#555b72);transition:height .45s ease}.head{width:66px;height:35px;margin:-1px auto 0;border:2.5px solid #4a506a;border-radius:6px 6px 13px 13px;background:linear-gradient(135deg,#fff,#cfd4e7);box-shadow:0 7px 13px rgba(50,50,80,.16)}.arms{position:relative;width:82px;height:62px;margin:-4px auto 0}.arm{position:absolute;top:0;width:11px;height:59px;border:2.5px solid #4a506a;background:#d8dced;border-radius:999px;transform-origin:top center;transition:transform .25s ease}.left{left:16px;transform:rotate(38deg)}.mid{left:36px;transform:rotate(0deg)}.right{right:16px;transform:rotate(-38deg)}.claw.closed .left{transform:rotate(15deg)}.claw.closed .right{transform:rotate(-15deg)}.claw.closed .mid{transform:translateY(5px)}.claw.shake{animation:shake .24s linear 2}@keyframes shake{0%,100%{transform:translateX(-50%) rotate(0)}25%{transform:translateX(-50%) rotate(-2deg)}75%{transform:translateX(-50%) rotate(2deg)}}.held{position:absolute;left:50%;top:136px;transform:translateX(-50%);width:82px;height:82px}.held img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(70,60,100,.18))}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;align-items:center}.joy-wrap{height:126px;border:3px solid #fff;border-radius:24px;background:linear-gradient(180deg,#fff3f9,#ffd2e6);display:grid;place-items:center;box-shadow:inset 0 0 18px rgba(255,255,255,.7),0 8px 16px rgba(70,60,110,.12)}.joy{position:relative;width:116px;height:88px;border-radius:999px;background:linear-gradient(180deg,#ffffff,#dff1ff);border:4px solid #c8e3ff;box-shadow:inset 0 5px 16px rgba(80,130,190,.18),0 9px 16px rgba(70,80,120,.16);touch-action:none}.joy::before{content:"左右摇杆";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#9bacd1;font-size:12px;font-weight:1000;letter-spacing:.08em}.knob{position:absolute;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,#ff9bc8 34%,#e84f91 76%);border:4px solid #fff;box-shadow:0 9px 18px rgba(190,56,110,.26),inset 0 5px 10px rgba(255,255,255,.62);transition:left .12s ease}
.action-box{display:grid;gap:8px}.catch-btn{border:3px solid #fff;border-radius:22px;padding:15px 8px;background:linear-gradient(180deg,#ff9bc8,#ec5797);color:#fff;font-size:24px;font-weight:1000;min-height:66px;box-shadow:0 9px 16px rgba(70,80,120,.13)}.mini-state{font-size:12px;font-weight:1000;color:#66708f;background:rgba(255,255,255,.75);border-radius:14px;padding:8px;text-align:center}
.rewards{display:grid;grid-template-columns:1fr 1fr;gap:7px}.reward{display:flex;gap:6px;align-items:center;border:1.5px solid #f4cf83;border-radius:14px;background:#fff5dd;padding:7px 8px;min-height:43px;box-shadow:0 3px 8px rgba(125,96,49,.06)}.reward.empty{filter:grayscale(1);opacity:.55}.ri{width:27px;height:27px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:15px;font-weight:1000;color:#d49b20;flex:none}.rt{flex:1;font-size:12px;font-weight:1000;line-height:1.2}.rs{font-size:10px;font-weight:1000;color:#f05c9b;background:#fff;border-radius:999px;padding:3px 5px}
.section-title{margin:0 0 8px;font-size:20px;font-weight:1000;color:#f05c9b;display:flex;align-items:center;gap:6px}
.modal{position:fixed;z-index:200;inset:0;display:none;place-items:center;padding:18px;background:rgba(34,39,70,.34);backdrop-filter:blur(6px)}.modal.show{display:grid}.modal-box{width:min(390px,100%);border:5px solid #fff;border-radius:32px;background:linear-gradient(135deg,#fff,#fff0f7,#eaf7ff);box-shadow:0 26px 65px rgba(34,39,70,.25);padding:24px 18px 18px;text-align:center;animation:pop .23s cubic-bezier(.2,1.15,.2,1) both}@keyframes pop{from{transform:scale(.86) translateY(18px);opacity:0}to{transform:scale(1);opacity:1}}.modal-icon{width:92px;height:92px;margin:0 auto 8px;border-radius:50%;background:#fff4b9;border:5px solid #fff;display:grid;place-items:center;font-size:42px;box-shadow:0 9px 20px rgba(120,90,30,.16)}.modal h2{margin:0 0 10px;font-size:34px;font-weight:1000;color:#f05c9b}.modal-result{border:3px solid #ffd2e5;border-radius:22px;background:rgba(255,255,255,.86);padding:14px}.modal-sub{font-size:13px;font-weight:900;color:#9096b0}.modal-reward{margin-top:5px;font-size:24px;font-weight:1000;color:#23304a}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.modal-actions button{padding:12px 8px;border-radius:16px;font-weight:1000}
.admin-card{border:4px solid #fff;border-radius:22px;background:rgba(255,255,255,.68);padding:12px;margin-top:10px;box-shadow:0 12px 28px rgba(70,80,130,.12)}.admin-grid{display:grid;gap:8px}.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.records{display:grid;gap:7px;max-height:340px;overflow:auto}.rec{border-radius:14px;background:#f6f7ff;padding:9px 10px;font-size:12px;font-weight:900;color:#5d6688;line-height:1.45}.rec strong{color:#e84f91}.empty-rec{padding:16px 10px;text-align:center;border-radius:14px;background:#f6f7ff;color:#9aa2bc;font-weight:900}.code-line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:14px;background:#fff;font-size:12px;font-weight:900;color:#5d6688}.code-line b{color:#e84f91;font-size:14px}.status-pill{display:inline-block;padding:2px 7px;border-radius:999px;background:#eaf6ff;color:#4c7db6;font-size:10px}
.hidden{display:none!important}
@media (max-width:370px){.glass{height:396px}.controls{grid-template-columns:1fr}.joy-wrap{height:112px}h1{font-size:33px}.subtitle{font-size:17px}.doll{transform:translate(-50%,-50%) scale(.9)}}
/* ===== Koi Club 奖励表优化版：隐藏库存 + 卡片美化 ===== */

#rewardList,
.reward-list,
.rewards {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  align-items: stretch !important;
}

.reward {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 72px !important;
  padding: 11px 12px !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,239,248,.95)) !important;
  border: 2px solid rgba(255, 180, 219, .9) !important;
  box-shadow:
    0 8px 18px rgba(85, 76, 130, .10),
    inset 0 0 14px rgba(255,255,255,.9) !important;
  overflow: hidden !important;
}

.reward::before {
  content: "" !important;
  position: absolute !important;
  width: 62px !important;
  height: 62px !important;
  right: -20px !important;
  top: -24px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, rgba(255, 166, 210, .38), rgba(255, 255, 255, 0)) !important;
  pointer-events: none !important;
}

.reward::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  pointer-events: none !important;
}

.ri {
  width: 42px !important;
  height: 42px !important;
  border-radius: 15px !important;
  display: grid !important;
  place-items: center !important;
  background: linear-gradient(180deg, #ffffff, #fff0f8) !important;
  border: 1.5px solid rgba(255, 186, 218, .95) !important;
  box-shadow: 0 5px 10px rgba(126, 94, 140, .12) !important;
  font-size: 23px !important;
  z-index: 1 !important;
}

.rt {
  font-size: 15px !important;
  line-height: 1.28 !important;
  font-weight: 900 !important;
  color: #303653 !important;
  letter-spacing: .02em !important;
  z-index: 1 !important;
}

/* 强制隐藏所有库存文字 */
.rs,
.stock,
.reward-stock,
.doll span {
  display: none !important;
}

/* 手机端奖励表更紧凑 */
@media (max-width: 520px) {
  #rewardList,
  .reward-list,
  .rewards {
    gap: 8px !important;
  }

  .reward {
    min-height: 66px !important;
    padding: 9px 9px !important;
    grid-template-columns: 36px 1fr !important;
    border-radius: 17px !important;
  }

  .ri {
    width: 36px !important;
    height: 36px !important;
    border-radius: 13px !important;
    font-size: 20px !important;
  }

  .rt {
    font-size: 13.5px !important;
  }
}
