:root{--ink:#493c58;--ink-2:#756780;--paper:#fffaf3;--cream:#fff2df;--peach:#ffb887;--pink:#ff8eae;--mint:#86dfcf;--sky:#87d9ff;--purple:#bca2f6;--yellow:#ffd874;--line:rgba(73,60,88,.18);--shadow:0 12px 0 rgba(73,60,88,.12),0 24px 55px rgba(89,65,102,.14)}
*{box-sizing:border-box}html{min-width:320px;background:#fff4e8}body{margin:0;color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",Bahnschrift,sans-serif;background:linear-gradient(145deg,#fff8ef,#ffece7 48%,#eaf9ff);min-height:100vh;overflow-x:hidden}
.sky-deco{position:fixed;background:#fff;border-radius:50%;opacity:.75;z-index:0;box-shadow:70px 22px 0 #fff,135px -5px 0 #fff}.c1{width:80px;height:80px;left:4%;top:13%}.c2{width:60px;height:60px;right:6%;top:26%;transform:scale(.9)}.c3{width:95px;height:95px;right:18%;bottom:8%;opacity:.45}.paw-field{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cpath d='M50 92c0-16 12-29 29-29s29 13 29 29c0 21-29 48-29 48s-29-27-29-48zM101 65c0-8 6-14 14-14s14 6 14 14-14 23-14 23-14-15-14-23zM24 66c0-8 6-14 14-14s14 6 14 14-14 23-14 23-14-15-14-23z' fill='%23493c58'/%3E%3C/svg%3E");background-size:180px 180px}
.app-shell{position:relative;z-index:2;width:min(1560px,calc(100% - 44px));margin:auto;padding:26px 0 18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 19px;margin-bottom:20px;border:3px solid var(--ink);border-radius:26px;background:rgba(255,250,243,.93);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:58px;height:58px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:19px;background:var(--yellow);font-size:28px;transform:rotate(-5deg);box-shadow:4px 5px 0 rgba(73,60,88,.15)}.eyebrow,.step,.screen-kicker{margin:0;color:#a05a75;font-size:11px;font-weight:900;letter-spacing:.15em}.brand h1{margin:3px 0 0;font-size:clamp(20px,2vw,30px)}.shop-status{display:flex;align-items:center;gap:10px;padding:9px 13px;border:2px solid var(--ink);border-radius:999px;background:#e8fff8;font-size:12px;font-weight:800;white-space:nowrap}.online-dot{width:9px;height:9px;border-radius:50%;background:#43d995;box-shadow:0 0 0 4px rgba(67,217,149,.18);animation:blink 1.6s infinite}@keyframes blink{50%{opacity:.45}}.divider{width:2px;height:17px;background:var(--line)}.workspace{display:grid;grid-template-columns:minmax(350px,440px) minmax(0,1fr);gap:22px;align-items:start}.rack-panel,.tray-panel{border:3px solid var(--ink);border-radius:28px;background:rgba(255,250,243,.94);box-shadow:var(--shadow)}.rack-panel{padding:22px;position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.section-head h2,.tray-panel h3{margin:5px 0 0;font-size:25px}.filter-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.filter{border:2px solid var(--ink);border-radius:999px;padding:7px 11px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;box-shadow:0 3px 0 rgba(73,60,88,.15);transition:.18s}.filter:hover,.filter.active{background:var(--yellow);transform:translateY(-2px)}.rack-tip{margin:16px 0 18px;color:var(--ink-2);font-size:13px;line-height:1.6}.rack-tip b{color:#bb5877}.cartridge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:430px;align-content:start}
.cartridge-card{position:relative;border:3px solid var(--ink);border-radius:20px;padding:9px;background:#fff;box-shadow:0 5px 0 rgba(73,60,88,.18);transition:transform .2s,box-shadow .2s;cursor:grab;user-select:none;min-width:0}.cartridge-card:hover{transform:translateY(-5px) rotate(-1deg);box-shadow:0 9px 0 rgba(73,60,88,.15)}.cartridge-card.selected{background:#fff4cd;box-shadow:0 0 0 4px color-mix(in srgb,var(--card-accent) 45%,transparent),0 7px 0 rgba(73,60,88,.2)}.cartridge-card.inserted{opacity:.45;filter:saturate(.45)}.cartridge-card.hidden{display:none}.cartridge-card.selected::after{content:'★';position:absolute;right:8px;bottom:10px;color:#ffba3f;font-size:22px;text-shadow:2px 2px 0 var(--ink)}
.cartridge-visual{position:relative;aspect-ratio:.78;border:3px solid var(--ink);border-radius:18px 18px 13px 13px;background:linear-gradient(135deg,var(--card-a),var(--card-b));overflow:hidden;box-shadow:inset 0 0 0 5px rgba(255,255,255,.35)}.cartridge-visual::before{content:'';position:absolute;left:8%;right:8%;top:5%;height:7%;border-radius:5px;background:repeating-linear-gradient(90deg,rgba(73,60,88,.32) 0 6px,transparent 6px 12px)}.cartridge-visual::after{content:'';position:absolute;left:13%;right:13%;bottom:0;height:10%;border-radius:12px 12px 0 0;background:repeating-linear-gradient(90deg,#fff0 0 8px,rgba(73,60,88,.34) 8px 12px)}.cartridge-label{position:absolute;left:10%;right:10%;top:24%;bottom:21%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 5px;border:3px solid var(--ink);border-radius:13px;background:rgba(255,252,242,.92);box-shadow:0 4px 0 rgba(73,60,88,.1);cursor:text;outline:none}.cartridge-label:focus{background:#fff;box-shadow:0 0 0 4px rgba(255,216,116,.55)}.cartridge-label small{font-size:8px;font-weight:900;letter-spacing:.08em;color:#a05a75}.cartridge-label b{font-size:16px;line-height:1.14;padding:3px 0;max-width:100%;word-break:break-all}.cartridge-label span{font-size:9px;color:#876f93}.cartridge-cat{position:absolute;right:4%;bottom:18%;font-size:22px;transform:rotate(8deg)}.cartridge-card-title{margin:8px 3px 1px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cartridge-card-sub{display:flex;justify-content:space-between;padding:0 3px;color:var(--ink-2);font-size:10px}.rack-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:15px;border-top:2px dashed var(--line);color:var(--ink-2);font-size:11px}.key,kbd{display:inline-block;padding:3px 6px;border:2px solid var(--ink);border-radius:7px;background:#fff;color:var(--ink);font-size:10px;font-weight:900;box-shadow:0 2px 0 rgba(73,60,88,.14)}
.side-cat{position:fixed;z-index:1;width:118px;pointer-events:none;filter:drop-shadow(0 8px 0 rgba(73,60,88,.1));animation:catFloat 4s ease-in-out infinite}.cat-left{left:8px;bottom:18px;transform:rotate(-8deg)}.cat-right{right:8px;top:125px;width:105px;animation-delay:-2s}.cat-bubble{position:fixed;z-index:1;padding:8px 11px;border:2px solid var(--ink);border-radius:14px;background:#fff;font-size:11px;font-weight:900;box-shadow:0 4px 0 rgba(73,60,88,.13);pointer-events:none}.bubble-left{left:112px;bottom:92px}.bubble-right{right:95px;top:152px;background:#e8fff8}@keyframes catFloat{50%{translate:0 -10px;rotate:3deg}}
.console-column{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.machine{position:relative;border:4px solid var(--ink);border-radius:34px;padding:16px;background:linear-gradient(145deg,#bfeef1,#92d8dd 58%,#79c7ce);box-shadow:0 12px 0 #6cafb7,0 30px 60px rgba(69,85,104,.22)}.machine-top{height:48px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 8px}.power-cluster{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:900;letter-spacing:.12em}.led{width:10px;height:10px;border:2px solid var(--ink);border-radius:50%;background:#62eb9d;box-shadow:0 0 0 4px rgba(98,235,157,.25)}.machine-name{font-size:11px;font-weight:900;letter-spacing:.1em}.machine-name b{color:#fff;background:var(--ink);padding:3px 6px;border-radius:7px}.vent{display:flex;gap:4px}.vent i{width:5px;height:20px;border:2px solid var(--ink);border-radius:5px;background:#fff5}.screen-bezel{padding:15px;border:4px solid var(--ink);border-radius:24px;background:#fff7e9;box-shadow:inset 0 5px 0 rgba(255,255,255,.7)}.screen{position:relative;aspect-ratio:16/9;overflow:hidden;border:4px solid var(--ink);border-radius:18px;background:#263653;box-shadow:inset 0 0 28px rgba(0,0,0,.3)}.screen-grid,.screen-scan{pointer-events:none}.screen-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:32px 32px}.screen-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 5px);z-index:8;mix-blend-mode:screen;opacity:.35}
.standby-view,.loading-view,.order-view{position:absolute;inset:0;z-index:3}.standby-view,.loading-view{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:#fff}.standby-view{transition:.3s}.standby-cat{font-size:54px;filter:drop-shadow(0 4px 0 #0004);animation:catFloat 2.7s ease-in-out infinite}.standby-view h3,.loading-view h3{margin:7px 0;font-size:clamp(24px,3.2vw,42px);text-shadow:0 3px 0 #0003}.standby-view p,.loading-view p{margin:0;color:#d8e8f7;font-size:12px}.screen-kicker{color:#8ef0ff}.screen[data-state="standby"] .loading-view,.screen[data-state="standby"] .order-view{opacity:0;visibility:hidden}.loading-view{background:linear-gradient(145deg,#34517a,#2a344f);opacity:0;visibility:hidden;transition:.25s}.screen[data-state="loading"] .standby-view,.screen[data-state="loading"] .order-view{opacity:0;visibility:hidden}.screen[data-state="loading"] .loading-view{opacity:1;visibility:visible}.loader-paw{width:min(390px,72%);height:18px;margin:20px 0 12px;padding:3px;border:3px solid #fff;border-radius:99px;background:#1f2b45}.loader-paw i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#ffd874,#ff93b4)}.screen[data-state="loading"] .loader-paw i{animation:load 1.2s ease forwards}@keyframes load{to{width:100%}}.order-view{background:#1f2b45;opacity:0;visibility:hidden;transform:scale(1.04);transition:.5s}.screen[data-state="order"] .standby-view,.screen[data-state="order"] .loading-view{opacity:0;visibility:hidden}.screen[data-state="order"] .order-view{opacity:1;visibility:visible;transform:scale(1)}.order-view img{width:100%;height:100%;object-fit:cover}.order-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(33,25,50,.78),transparent 45%)}.order-caption{position:absolute;left:6%;bottom:8%;z-index:2;color:#fff;text-shadow:0 4px 0 rgba(73,60,88,.35)}.order-caption span{font-size:10px;font-weight:900;letter-spacing:.17em;color:#fff2a8}.order-caption h3{margin:5px 0 0;font-size:clamp(28px,4vw,52px)}
.machine-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 7px 11px}.slot{position:relative;height:76px;border:4px solid var(--ink);border-radius:17px;background:#fff4d8;box-shadow:inset 0 6px 0 rgba(255,255,255,.75),0 5px 0 rgba(73,60,88,.16);display:grid;place-items:center;overflow:hidden;transition:.2s}.slot::before{content:'';position:absolute;left:5%;right:5%;top:30px;height:17px;border:3px solid var(--ink);border-radius:99px;background:#584a68;box-shadow:inset 0 4px 7px #241d2e}.slot-mouth{position:absolute;z-index:2;left:8%;right:8%;top:37px;height:4px;border-radius:99px;background:#fff1a8;box-shadow:0 0 14px #fff1a8}.slot span{position:absolute;right:12px;bottom:5px;font-size:9px;font-weight:900;letter-spacing:.1em}.slot.dragover,.slot.pulse{background:#fff0ac;box-shadow:0 0 0 5px rgba(255,216,116,.45),0 5px 0 rgba(73,60,88,.16)}.control-buttons{display:flex;gap:8px}.control-btn{border:3px solid var(--ink);border-radius:14px;padding:14px 15px;background:#fff;color:var(--ink);font-weight:900;font-size:12px;box-shadow:0 5px 0 rgba(73,60,88,.18);transition:.18s}.control-btn:hover:not(:disabled){transform:translateY(-2px)}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn.insert{background:#ffd874}.control-btn.eject{background:#ffb4c8}.control-btn span{margin-right:4px}.machine-foot{height:38px;display:flex;align-items:center;gap:12px;padding:0 7px;border-top:2px dashed rgba(73,60,88,.25);font-size:9px;font-weight:900;letter-spacing:.08em}.foot-light{width:42px;height:7px;border:2px solid var(--ink);border-radius:99px;background:#ff9fbb}.serial{margin-left:auto}.tray-panel{padding:19px}.tray-head{display:flex;justify-content:space-between;color:var(--ink-2);font-size:10px;font-weight:900;letter-spacing:.12em}.tray-code{color:#a05a75}.tray-panel h3{margin:12px 0 6px;font-size:23px}.tray-panel>p{margin:0;color:var(--ink-2);font-size:12px;line-height:1.65;min-height:42px}.tray-meta{display:grid;grid-template-columns:.78fr 1.48fr .78fr;gap:6px;margin:17px 0 14px}.tray-meta div{padding:9px 5px;border:2px solid var(--ink);border-radius:12px;background:#fff;text-align:center;box-shadow:0 3px 0 rgba(73,60,88,.12)}.tray-meta span{display:block;color:var(--ink-2);font-size:9px}.tray-meta b{display:block;margin-top:3px;font-size:11px}.tray-tags{display:flex;gap:5px;flex-wrap:wrap;min-height:25px}.tag{padding:4px 7px;border:2px solid var(--ink);border-radius:999px;background:#e8fff8;font-size:9px;font-weight:900}.tray-hint{margin-top:17px;padding-top:13px;border-top:2px dashed var(--line);color:var(--ink-2);font-size:10px;line-height:1.7}.page-footer{display:flex;justify-content:space-between;gap:15px;padding:14px 5px 2px;color:var(--ink-2);font-size:10px;font-weight:800}.toast{position:fixed;left:50%;bottom:28px;z-index:99;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:10px 15px;border:3px solid var(--ink);border-radius:14px;background:#fff;color:var(--ink);font-size:12px;font-weight:900;box-shadow:0 6px 0 rgba(73,60,88,.18);transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.cartridge-flying{position:fixed;z-index:200;pointer-events:none;border:3px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:0 0 0 5px rgba(255,216,116,.45),0 12px 35px #493c5855}
@media(max-width:1220px){.workspace{grid-template-columns:1fr}.rack-panel{position:relative;top:auto;max-height:none}.cartridge-grid{grid-template-columns:repeat(3,minmax(0,1fr));min-height:0}.console-column{grid-template-columns:minmax(0,1fr) 290px}}@media(max-width:880px){.app-shell{width:min(100% - 22px,720px);padding-top:12px}.shop-status{display:none}.console-column{grid-template-columns:1fr}.tray-panel{order:-1}.cartridge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.machine-controls{grid-template-columns:1fr}.control-buttons{justify-content:stretch}.control-btn{flex:1}.side-cat,.cat-bubble{display:none}}@media(max-width:520px){.app-shell{width:calc(100% - 14px)}.topbar{padding:11px;border-radius:20px}.brand-mark{width:46px;height:46px;font-size:23px}.brand h1{font-size:17px}.eyebrow{font-size:8px}.rack-panel{padding:15px}.filter-row{display:none}.cartridge-grid{gap:9px}.cartridge-label b{font-size:13px}.cartridge-label small,.cartridge-label span{display:none}.cartridge-cat{font-size:16px}.cartridge-card-title{font-size:11px}.machine{padding:10px;border-radius:26px}.machine-name{font-size:8px}.vent{display:none}.screen-bezel{padding:8px}.slot span{display:none}.control-btn{padding:12px 8px;font-size:10px}.tray-meta{margin-top:12px}.page-footer{display:none}}

.tray-meta b[contenteditable="true"]{display:inline-block;min-width:3.2em;padding:2px 3px;border-bottom:2px dashed rgba(73,60,88,.35);outline:none;cursor:text}.tray-meta b[contenteditable="true"]:focus{background:#fff0ac;border-radius:6px;border-bottom-color:transparent}.tray-meta b[contenteditable="true"]::after{content:"✎";font-size:8px;margin-left:2px;opacity:.55}

.tray-meta [data-field="duration"]{min-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.tray-meta [data-field="price"]{min-width:2.7em}

.customer-mode .rack-tip b,.customer-mode .rack-footer span:last-child{display:none}.customer-mode .cartridge-label{cursor:pointer}.customer-mode .cartridge-label span{opacity:.78}
.rack-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:9px 10px;border:2px dashed rgba(73,60,88,.22);border-radius:14px;background:#fff8ee}
.card-count{font-size:11px;font-weight:900;color:var(--ink-2)}
.add-card-btn{border:3px solid var(--ink);border-radius:12px;padding:8px 11px;background:#dff9f2;color:var(--ink);font-weight:900;font-size:12px;box-shadow:0 4px 0 rgba(73,60,88,.15);transition:.18s}
.add-card-btn:hover{transform:translateY(-2px)}
.delete-card,.edit-card{position:absolute;top:7px;z-index:6;width:26px;height:26px;border:2px solid var(--ink);border-radius:50%;background:#ffd2dc;color:var(--ink);font-size:17px;font-weight:900;line-height:1;box-shadow:0 3px 0 rgba(73,60,88,.13);cursor:pointer}
.delete-card{left:8px}.edit-card{right:8px;background:#dff9f2}.delete-card:hover{background:#ff829f}.edit-card:hover{background:#9de9d8}
.customer-mode .rack-actions{display:none}
.modal-backdrop{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:18px;background:rgba(55,42,70,.45);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.2s}
.modal-backdrop.show{opacity:1;visibility:visible}
.card-modal{width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:21px;border:4px solid var(--ink);border-radius:25px;background:#fffaf3;box-shadow:0 12px 0 rgba(73,60,88,.16),0 30px 70px rgba(55,42,70,.25);transform:translateY(18px) scale(.98);transition:.25s}
.modal-backdrop.show .card-modal{transform:translateY(0) scale(1)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.modal-head h3{margin:4px 0 0;font-size:25px}
.modal-close{width:36px;height:36px;border:3px solid var(--ink);border-radius:50%;background:#ffd2dc;font-size:23px;font-weight:900;line-height:1}
.card-modal label{display:block;margin:10px 0;font-size:12px;font-weight:900}
.card-modal label>span{display:block;margin:0 0 5px 4px}
.card-modal input,.card-modal select{width:100%;border:3px solid var(--ink);border-radius:12px;padding:10px 11px;background:#fff;color:var(--ink);outline:none;font-weight:700}
.card-modal input:focus,.card-modal select:focus{box-shadow:0 0 0 4px rgba(255,216,116,.55)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.image-preview{margin-top:7px;padding:13px;border:2px dashed var(--line);border-radius:13px;background:#fff;color:var(--ink-2);font-size:11px;text-align:center;overflow:hidden}
.image-preview img{display:block;max-width:100%;max-height:170px;margin:auto;border-radius:11px}
.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
@media(max-width:520px){.form-row{grid-template-columns:1fr}.rack-actions{position:sticky;top:0;z-index:12}.card-modal{padding:16px}}
.image-zoom-hint{position:absolute;right:4%;top:6%;z-index:3;padding:7px 10px;border:2px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(42,34,55,.72);color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.image-lightbox{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:26px;background:rgba(32,24,42,.88);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:.22s}
.image-lightbox.show{opacity:1;visibility:visible}
.image-lightbox img{max-width:min(1500px,96vw);max-height:86vh;border:5px solid #fff;border-radius:22px;box-shadow:0 18px 0 rgba(0,0,0,.2),0 35px 80px rgba(0,0,0,.45);transform:scale(.96);transition:.22s}
.image-lightbox.show img{transform:scale(1)}
.lightbox-close{position:absolute;right:26px;top:22px;width:48px;height:48px;border:3px solid #fff;border-radius:50%;background:#ff8eae;color:#fff;font-size:30px;font-weight:900;line-height:1;box-shadow:0 5px 0 rgba(0,0,0,.2)}
.image-lightbox p{position:absolute;bottom:18px;margin:0;color:#fff;font-size:11px;font-weight:900;letter-spacing:.08em;opacity:.8}
@media(max-width:520px){.image-zoom-hint{font-size:8px;padding:5px 7px}.image-lightbox{padding:12px}.lightbox-close{right:12px;top:12px}.image-lightbox img{border-width:3px;border-radius:14px;max-height:80vh}}

.order-shade,.order-caption,.image-zoom-hint{pointer-events:none}
.hot-badge{position:absolute;left:50%;top:7px;z-index:5;transform:translateX(-50%) rotate(-2deg);padding:3px 7px;border:2px solid var(--ink);border-radius:999px;background:#ffd874;color:var(--ink);font-size:9px;font-weight:900;box-shadow:0 3px 0 rgba(73,60,88,.14)}
.hot-check{display:flex!important;align-items:center;gap:8px;padding:10px 12px;border:2px dashed rgba(73,60,88,.25);border-radius:12px;background:#fff8e8}
.hot-check input{width:18px!important;height:18px!important;margin:0;accent-color:#ff9b52}
.hot-check span{margin:0!important}
.start-play-btn{position:fixed;right:28px;bottom:28px;z-index:180;display:flex;align-items:center;gap:9px;padding:12px 18px;border:4px solid var(--ink);border-radius:18px;background:#ffd874;color:var(--ink);box-shadow:0 8px 0 rgba(73,60,88,.2),0 18px 40px rgba(73,60,88,.22);opacity:0;visibility:hidden;transform:translateY(24px) scale(.9);transition:.28s}.start-play-btn.show{opacity:1;visibility:visible;transform:translateY(0) scale(1);animation:startPulse 1.5s ease-in-out infinite}.start-play-btn span{font-size:23px}.start-play-btn b{font-size:16px}.start-play-btn small{display:block;font-size:9px;color:#8c5770}@keyframes startPulse{50%{box-shadow:0 8px 0 rgba(73,60,88,.2),0 0 0 9px rgba(255,216,116,.3)}}.wechat-modal{position:fixed;inset:0;z-index:230;display:grid;place-items:center;padding:18px;background:rgba(38,28,48,.76);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.22s}.wechat-modal.show{opacity:1;visibility:visible}.wechat-card{position:relative;width:min(440px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:24px;border:4px solid var(--ink);border-radius:28px;background:#fffaf3;box-shadow:0 14px 0 rgba(73,60,88,.18),0 35px 80px rgba(0,0,0,.35);text-align:center;transform:scale(.94);transition:.22s}.wechat-modal.show .wechat-card{transform:scale(1)}.wechat-card h3{margin:5px 0 7px;font-size:27px}.wechat-copy{margin:0 0 15px;color:var(--ink-2);font-size:12px}.wechat-card>img{display:block;width:min(290px,78vw);margin:auto;border:3px solid var(--ink);border-radius:20px;background:#fff}.wechat-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:3px solid var(--ink);border-radius:50%;background:#ffd2dc;font-size:23px;font-weight:900;line-height:1}.wechat-id-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0;padding:10px;border:2px dashed var(--line);border-radius:13px;background:#fff}.wechat-id-row span{font-size:10px;color:var(--ink-2)}.wechat-id-row b{font-size:13px}.wechat-id-row button{border:2px solid var(--ink);border-radius:8px;background:#dff9f2;padding:4px 8px;font-size:10px;font-weight:900}.wechat-done{width:100%}@media(max-width:520px){.start-play-btn{right:14px;bottom:14px;padding:10px 13px}.wechat-card{padding:17px}.wechat-card>img{width:min(250px,76vw)}}
.owner-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.add-card-btn.export-btn{background:#fff0b8}
@media(max-width:880px){
  .app-shell{width:calc(100% - 18px);padding-top:10px}
  .topbar{padding:11px 12px;margin-bottom:12px;border-radius:20px}
  .brand-mark{width:46px;height:46px;font-size:23px}
  .brand h1{font-size:18px;line-height:1.2}
  .rack-panel{padding:15px;border-radius:22px}
  .section-head{display:block}
  .section-head h2{font-size:22px}
  .filter-row{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;margin-top:10px;padding:2px 1px 6px;scrollbar-width:none}
  .filter-row::-webkit-scrollbar{display:none}
  .filter{flex:0 0 auto}
  .rack-tip{margin:10px 0 8px;font-size:12px}
  .cartridge-grid{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:5px 2px 16px;margin:0 -2px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .cartridge-card{flex:0 0 142px;width:142px;padding:8px;scroll-snap-align:start}
  .cartridge-card-title{font-size:12px}
  .cartridge-card-sub{font-size:9px}
  .rack-footer{margin-top:8px;padding-top:10px}
  .console-column{gap:10px}
  .tray-panel{padding:13px;border-radius:21px}
  .tray-head{font-size:9px}
  .tray-panel h3{margin:7px 0 4px;font-size:20px}
  .tray-panel>p{display:none}
  .tray-meta{grid-template-columns:.78fr 1.48fr .78fr;margin:9px 0 5px}
  .tray-meta div{padding:7px 4px}
  .tray-tags,.tray-hint{display:none}
  .machine{padding:10px;border-radius:25px}
  .screen-bezel{padding:9px}
  .machine-controls{padding:13px 5px 8px;gap:10px}
  .slot{height:66px}
  .control-btn{padding:13px 10px}
  .start-play-btn{right:12px;bottom:12px}
}
@media(max-width:520px){
  .app-shell{width:calc(100% - 12px);padding-top:7px}
  .topbar{margin-bottom:9px}
  .brand-mark{width:42px;height:42px;font-size:21px}
  .brand h1{font-size:16px}
  .eyebrow{font-size:8px}
  .rack-panel{padding:12px}
  .rack-tip{font-size:11px}
  .cartridge-card{flex-basis:132px;width:132px}
  .cartridge-grid{gap:8px}
  .tray-meta{grid-template-columns:.7fr 1.6fr .7fr;gap:5px}
  .machine-controls{padding-top:10px}
}

@media(max-width:880px){.filter-row{display:flex}.filter{padding:8px 12px;font-size:12px;min-height:36px}.filter[data-filter="热门"].active{background:#ffd874}.filter[data-filter="趣味"].active{background:#ffb4c8}.filter[data-filter="猛攻"].active{background:#ffb887}.filter[data-filter="摸红"].active{background:#c5a6ff}}
