:root{--pink:#ef8090;--rose:#d85c70;--deep:#4b2831;--cream:#fff9f6;--line:#f0dfdd;--green:#4d9b78;--shadow:0 12px 36px rgba(117,61,73,.1)}
*{box-sizing:border-box}html{background:#f6efed}body{margin:0;color:var(--deep);font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:radial-gradient(circle at 20% 0,#fff 0,#fff7f5 34%,#f9efec 100%);min-height:100vh}button,input{font:inherit}button{color:inherit;cursor:pointer}.shell{width:min(100%,760px);min-height:100vh;margin:auto;background:rgba(255,252,250,.92);box-shadow:0 0 70px rgba(92,45,57,.08);position:relative;padding-bottom:94px}.shell.wide{width:min(100%,1320px)}header{height:70px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;background:rgba(255,251,249,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(235,210,209,.65)}header>div{text-align:center;display:flex;flex-direction:column;gap:3px}header b{font-size:17px}header small{font-size:10px;letter-spacing:2px;color:#ae858a}header button{border:0;background:none;font-size:26px;width:40px}.back{font-size:38px}.hidden{visibility:hidden}main{padding:0 24px 110px}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,760px);height:76px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);z-index:12;padding-bottom:env(safe-area-inset-bottom)}nav button{border:0;background:none;color:#a7868b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px}nav i{font-style:normal;font-size:23px}nav .on{color:var(--rose);font-weight:700}.wide nav{width:min(100%,1320px)}.loading,.empty{min-height:70vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.empty>b{font-size:48px}.card{background:rgba(255,255,255,.86);border:1px solid #f3e4e0;border-radius:20px;box-shadow:var(--shadow)}.primary{border:0;border-radius:14px;color:white;background:linear-gradient(135deg,#ed8797,#dc6378);font-weight:700;box-shadow:0 8px 20px rgba(221,91,113,.25);padding:14px 28px}.block{width:100%}.outline{padding:13px 24px;border:1px solid #df9ca7;color:#c25567;background:#fff7f7;border-radius:13px;font-weight:700}.center{text-align:center;color:#a17980;font-size:13px}.hero{margin:0 -24px;border-radius:0 0 34px 34px;overflow:hidden;background:#f4cbd0}.hero img{width:100%;height:auto;display:block}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:-23px 0 24px;position:relative}.quick button{border:1px solid white;background:rgba(255,255,255,.94);box-shadow:var(--shadow);border-radius:18px;padding:15px 8px;display:flex;flex-direction:column;gap:4px;align-items:center}.quick i{font-style:normal;font-size:25px}.quick b{font-size:13px}.quick small{font-size:10px;color:#b18b91}.info{padding:20px}.info h2{font-size:18px;margin:0 0 8px}.info>div{display:flex;gap:15px;padding:14px 0;border-bottom:1px dashed var(--line)}.info>div:last-child{border:0}.info i{font-style:normal;font-size:22px}.info span{display:flex;flex-direction:column;gap:4px}.info small{color:#b08a90;font-size:11px}.info b{font-size:14px}.notice{background:#fff1ed;color:#a45a65;border-radius:13px;padding:13px;margin:16px 0;font-size:12px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:26px 0 12px}.section-title span{display:flex;flex-direction:column;gap:4px}.section-title small{font-size:9px;letter-spacing:2px;color:#c49299}.section-title b{font-size:18px}.section-title button{border:0;background:none;color:#b66c78}.craft-strip{display:flex;gap:14px;overflow:auto;padding:3px 2px 15px;scrollbar-width:none}.craft-strip article{min-width:230px;background:white;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.craft-strip img{width:100%;height:132px;object-fit:cover}.craft-strip div{display:flex;flex-direction:column;padding:12px;gap:6px}.craft-strip small{color:#a9858b}.cta{position:sticky;bottom:84px;z-index:8;background:white;border:1px solid var(--line);box-shadow:0 -9px 30px rgba(104,52,63,.09);border-radius:18px;padding:12px 15px;margin:20px 0;display:flex;justify-content:space-between;align-items:center}.cta span{display:flex;flex-direction:column}.cta small{color:#a9888c}.cta b{color:var(--rose);font-size:18px}.page-title{text-align:center;padding:36px 0 22px}.page-title>span{font-size:38px}.page-title h1{margin:6px 0;font-family:Georgia,"Microsoft YaHei";font-size:28px}.page-title p{color:#9e7a80;font-size:13px}.page-title.left{text-align:left}.page-title.left small{letter-spacing:3px;color:#c38b94}.form{padding:24px}.form>label{display:flex;flex-direction:column;gap:9px;margin-bottom:22px}.form b,.form legend{font-size:14px}.form em{color:var(--rose);font-style:normal}.form input,.modal-input,.verify input,.search input{border:1px solid #ead9d6;background:#fffaf9;border-radius:12px;padding:14px;outline:none}.form input:focus,.modal-input:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ffe7ea}.form fieldset{border:0;padding:0;margin:0 0 22px}.form legend{margin-bottom:12px;font-weight:700}.radio{display:inline-block;margin-right:10px}.radio input,.tags input,.project-select input{display:none}.radio span,.tags span{display:inline-block;border:1px solid #ead4d3;border-radius:12px;padding:10px 20px}.radio input:checked+span,.tags input:checked+span{background:#ffe6e8;border-color:var(--pink);color:#be5164}.tags{display:flex;flex-wrap:wrap;gap:9px}.tags span{padding:8px 13px;font-size:12px}.ticket{margin:28px auto 12px;border-radius:26px;overflow:hidden;box-shadow:0 18px 50px rgba(134,64,77,.2);max-width:520px}.ticket-top{padding:25px;color:white;background:linear-gradient(135deg,#e8788b,#cb566d);display:flex;justify-content:space-between;align-items:start}.ticket-top small{letter-spacing:3px;opacity:.7}.ticket-top h1{font-size:19px;margin:7px 0}.ticket-top>b{background:#fff3;padding:7px 10px;border-radius:20px;font-size:12px}.ticket-body{padding:24px;background:#fff;text-align:center}.ticket canvas{width:220px;height:220px;max-width:75%}.ticket-body h2{font-family:Consolas,monospace;letter-spacing:5px}.ticket hr{border:0;border-top:2px dashed #ecd9d5}.ticket dl{text-align:left}.ticket dl div{display:flex;justify-content:space-between;padding:9px}.ticket dt{color:#a78388}.ticket dd{margin:0;font-weight:700}.group{text-align:center;padding:20px;margin-top:20px}.group img,.group-qr{width:230px;max-width:90%;border-radius:13px}.link-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:17px;text-align:left;margin:18px 0}.link-card b{float:right}.craft-list{display:grid;gap:18px}.craft-list article{overflow:hidden;cursor:pointer}.craft-img{height:220px;position:relative}.craft-img img{width:100%;height:100%;object-fit:cover}.craft-img b{position:absolute;right:12px;top:12px;background:var(--green);color:white;border-radius:20px;padding:7px 12px}.craft-copy{padding:20px}.craft-copy>small,.detail-hero small{font-size:9px;letter-spacing:2px;color:#bc8991}.craft-copy h2{margin:6px 0}.craft-copy p{color:#97767c}.craft-copy>div{display:flex;justify-content:space-between;font-size:13px}.craft-copy>div b{color:var(--rose)}.warn{color:#d27a31!important}.detail-hero{height:340px;margin:0 -24px;position:relative;color:white;overflow:hidden}.detail-hero img{width:100%;height:100%;object-fit:cover;filter:brightness(.72)}.detail-hero>div{position:absolute;left:28px;bottom:30px;right:20px}.detail-hero h1{font-size:30px;margin:8px 0}.stock-pill{margin:-19px auto 20px;position:relative;width:max-content;max-width:90%;background:white;padding:10px 24px;border-radius:30px;box-shadow:var(--shadow);font-weight:700}.video,.steps{padding:20px;margin:18px 0}.video h2,.steps h2{font-size:18px}.video>div{height:180px;border-radius:15px;background:#f8efed;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:35px;color:#bf7e88}.video small{text-align:center;font-size:12px;line-height:1.8}.video video{width:100%;border-radius:13px}.steps>div{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.steps>div>b{background:#ffe6e9;color:#c35568;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}.steps h3{margin:3px 0;font-size:15px}.steps p{margin:6px 0;color:#98777d;font-size:13px}.lottery-user{text-align:center;min-height:75vh;padding:45px 10px;background:radial-gradient(circle,#fff8ed,#fff3f5 55%,transparent)}.lottery-user>small{letter-spacing:5px;color:#c98e74}.lottery-user h1{font-family:Georgia,"Microsoft YaHei";font-size:42px;color:#b84963;margin:10px}.lottery-user>p{color:#a47d83}.lottery-user>section{max-width:460px;margin:40px auto;background:white;border:1px solid #f0d9d7;border-radius:23px;padding:26px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}#countdown{font:700 31px Georgia;color:#c54f68}#gift{margin-top:35px}.gift{font-size:100px;border:0;background:none;filter:drop-shadow(0 20px 15px #d8979c66)}.gift.opening{animation:shake .15s 5}.lottery-user footer{margin:55px;color:#df8898}@keyframes shake{50%{transform:rotate(8deg) scale(1.08)}}.profile{margin:25px 0;background:linear-gradient(135deg,#e87a8d,#d05a72);color:white;border-radius:22px;padding:22px;display:flex;align-items:center;gap:14px}.profile>span{font-size:38px}.profile div{flex:1}.profile h2,.profile p{margin:4px}.profile p{font-size:12px;opacity:.8}.profile>b{font-size:11px;background:#fff3;padding:6px 10px;border-radius:15px}.menu{overflow:hidden}.menu button{display:flex;align-items:center;width:100%;padding:17px;border:0;border-bottom:1px solid var(--line);background:white}.menu i{font-style:normal;font-size:22px;width:40px}.menu span{flex:1;text-align:left}.admin-zone{margin-top:28px}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-grid button{border:1px solid var(--line);background:white;border-radius:17px;padding:19px 5px;display:flex;flex-direction:column;gap:7px}.admin-grid i{font-style:normal;font-size:27px}.admin-hint{padding:25px;background:#f8eeec;border-radius:16px;color:#9b7a80;font-size:13px}.stat-grid,.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-grid article,.admin-stats span{background:white;border:1px solid var(--line);border-radius:18px;padding:22px 8px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}.stat-grid b,.admin-stats b{font-size:27px;color:#c7586c}.stat-grid span,.admin-stats small{font-size:12px;color:#9b7b80}.status-row{margin:18px 0;padding:20px;display:flex;justify-content:space-between}.status-row span{background:#ffe4e7;color:#c55669;border-radius:20px;padding:6px 12px}.inventory{padding:20px}.inventory .section-title{margin-top:0}.inventory>div:not(.section-title){display:grid;grid-template-columns:150px 1fr 45px;gap:10px;align-items:center;padding:11px 0}.inventory i{height:8px;background:#f1e5e3;border-radius:10px;overflow:hidden}.inventory i b{height:100%;display:block;background:linear-gradient(90deg,#e98191,#cb566d)}.inventory em{font-style:normal;font-size:12px}.admin-links{display:flex;gap:10px;margin:20px 0}.admin-links button{flex:1;padding:12px;border:1px solid var(--line);background:#fff;border-radius:12px}.admin-stats{margin:24px 0}.verify{padding:20px}.verify .scan{width:100%;border:0;background:#fff0f2;color:#c45368;border-radius:15px;padding:20px;margin-bottom:14px;font-size:20px}.verify form{display:flex;gap:8px}.verify input{flex:1;min-width:0}.verify form button{border:0;border-radius:12px;padding:10px 17px}.danger-line{width:100%;margin:14px 0 25px;padding:13px;border:1px solid #f0bfc4;color:#c65365;background:#fff4f4;border-radius:13px}.records{margin:25px 0}.records .section-title{margin-bottom:12px}.search{display:flex;margin-bottom:12px}.search input{flex:1;border-radius:12px 0 0 12px}.search button{border:0;background:#665058;color:white;padding:0 18px;border-radius:0 12px 12px 0}.record{display:flex;justify-content:space-between;background:white;border-bottom:1px solid var(--line);padding:15px}.record span{display:flex;flex-direction:column;gap:4px}.record small,.record time{color:#a9888d;font-size:11px}.record code{color:#bb5668}.empty-list{text-align:center;padding:40px;color:#ae8d92}.project-select{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.project-select span{display:flex;min-height:130px;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:5px;background:white;border:1px solid var(--line);border-radius:17px;padding:10px}.project-select i{font-style:normal;font-size:26px}.project-select small{font-size:10px;color:#9e7a80}.project-select input:checked+span{border:2px solid var(--pink);background:#fff4f5}.lottery-stage{background:radial-gradient(circle at 50% 40%,#6d2740,#35121f 70%);color:white;padding:30px;border-radius:0 0 30px 30px;text-align:center}.lottery-head{display:flex;justify-content:space-between;text-align:left}.lottery-head small{letter-spacing:4px;color:#e7a6b6}.lottery-head h1{margin:5px}.lottery-head>b{align-self:center}.slot{padding:50px;margin:25px auto;max-width:750px;border:2px solid #e99aae;border-radius:28px;background:#210b13;box-shadow:0 0 50px #e16b8b40 inset}.slot h2{font-size:55px;margin:20px}.slot p{font-size:20px}.slot code{font-size:18px;color:#f1a5b6}.lottery-controls{display:flex;justify-content:center;gap:12px}.lottery-controls button{padding:14px 25px;border-radius:12px;border:1px solid #ffffff55;background:#ffffff18;color:white}.lottery-controls .danger{color:#ff9baa}.winners{padding:24px}.winners article{display:grid;grid-template-columns:1fr 1fr 130px 1fr;gap:12px;padding:13px;border-bottom:1px solid var(--line)}.winners em{color:#bd5266;font-style:normal}.exports{display:grid;gap:13px}.exports a{display:flex;align-items:center;padding:19px;text-decoration:none;color:inherit}.exports>a>i{font-style:normal;font-size:30px;width:55px}.exports span{display:flex;flex:1;flex-direction:column;gap:5px}.exports small{color:#a38186}.exports em{font-style:normal;color:#c4586b}.export-tip{margin:22px 0;padding:18px;background:#f8ecea;border-radius:15px}.mask{position:fixed;inset:0;background:#2b1720aa;display:grid;place-items:center;padding:20px;z-index:50;backdrop-filter:blur(5px)}.modal{width:min(420px,100%);background:#fffaf8;border-radius:25px;padding:28px;text-align:center;position:relative;box-shadow:0 25px 80px #21081266}.modal .x{position:absolute;right:15px;top:10px;border:0;background:none;font-size:27px}.modal p{color:#9d7b80}.modal form{display:flex;flex-direction:column;gap:13px}.result-icon{font-size:60px}.prize{font-size:26px;color:#c24f65}.scanner{height:350px;overflow:hidden;border-radius:16px;position:relative;background:#111}.scanner video{width:100%;height:100%;object-fit:cover}.scanner i{position:absolute;inset:60px 35px;border:3px solid #fff;border-radius:13px}.win>div{font-size:35px}.win code{color:#bf5569}.win section{display:flex;flex-direction:column;background:#fff0f1;margin:18px 0;padding:18px;border-radius:15px}.win section b{font-size:22px;color:#b7445b}#toast{position:fixed;top:85px;left:50%;transform:translate(-50%,-20px);z-index:100;background:#493039;color:white;padding:12px 20px;border-radius:25px;opacity:0;pointer-events:none;transition:.25s;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.success{background:#3b8769}#toast.error{background:#b84256}
@media(min-width:800px){.craft-list{grid-template-columns:1fr 1fr}.shell:not(.wide) main{padding-left:45px;padding-right:45px}.hero{margin-left:-45px;margin-right:-45px}.detail-hero{margin-left:-45px;margin-right:-45px}}@media(max-width:560px){main{padding-left:16px;padding-right:16px}.hero{margin-left:-16px;margin-right:-16px}.detail-hero{margin-left:-16px;margin-right:-16px}.project-select{grid-template-columns:1fr}.slot h2{font-size:38px}.winners article{grid-template-columns:1fr 1fr}.winners article em{grid-column:1/-1}.inventory>div:not(.section-title){grid-template-columns:110px 1fr 38px}.craft-img{height:185px}.stat-grid article{padding:17px 5px}.stat-grid b{font-size:21px}}

/* 首页活动信息仅呈现时间和地点。 */
.info>div:last-child{display:none}
.info>div:nth-of-type(2){border-bottom:0}

/* 用户端抽奖结果与实时中奖名单 */
.result-page{padding-bottom:35px}.result-card{max-width:560px;margin:28px auto 24px;padding:30px 24px;border-radius:24px;background:#fff;border:1px solid #f0d9dc;box-shadow:0 15px 38px rgba(165,82,99,.14)}.result-card small{letter-spacing:2px;color:#bc7785}.result-card h2{margin:12px 0;font-size:30px;color:#bd5469;word-break:break-word}.result-card p{margin:0;color:#9d7d83}.result-card.lost h2{font-size:25px;color:#8d6970}.winner-board{max-width:560px;margin:auto;padding:22px;background:rgba(255,255,255,.78);border:1px solid #f0dadd;border-radius:22px;text-align:left}.winner-board>h2{margin:0 0 4px;color:#844d59}.winner-board>small{color:#b18a91}.winner-board article{display:grid;grid-template-columns:1.1fr .9fr 1.25fr;gap:8px;align-items:center;padding:14px 0;border-bottom:1px solid #f2e3e4;font-size:13px}.winner-board article:last-child{border-bottom:0}.winner-board span{color:#9c7b81}.winner-board em{font-style:normal;color:#ba576a}.winner-board>p{color:#a38187;text-align:center;padding:12px 0 0;margin:0}

/* 自动开奖结果：使用与活动页面一致的浅粉、藕粉色调 */
.lottery-stage{background:radial-gradient(circle at 50% 35%,#fffdfc 0,#fdecef 48%,#f3d8dc 100%);color:#70444d}.lottery-head small{color:#bd7887}.lottery-head h1{color:#8f4d5d}.lottery-head>b{color:#a45c6c}.slot{border-color:#edbdc6;background:rgba(255,255,255,.82);box-shadow:0 14px 36px rgba(181,100,117,.16)}.slot small{color:#a66a76}.slot h2{color:#bf596c;line-height:1.25;word-break:break-word}.slot code{color:#bd6978}.lottery-controls button{border-color:#e5aeb8;background:#fff8f8;color:#a74d60}.lottery-controls button:disabled{cursor:default;opacity:.8}.lottery-controls .danger{color:#b45868}

/* 果壳风铃款式选择 */
.style-choices{padding:20px;margin:18px 0}.style-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.style-head small{font-size:9px;letter-spacing:2px;color:#bc8991}.style-head h2{margin:5px 0 0;font-size:18px}.style-head p{margin:0;color:#9c7b80;font-size:12px}.style-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.style-option{cursor:pointer}.style-option input{display:none}.style-option>span{display:block;position:relative;overflow:hidden;border:2px solid transparent;border-radius:15px;background:#fff8f6;transition:.2s}.style-option img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.style-option b{display:inline-block;padding:11px 4px 12px 12px;font-size:14px}.style-option small{color:#a47e84}.style-option i{display:none;position:absolute;right:9px;top:9px;width:28px;height:28px;border-radius:50%;background:#dc6378;color:#fff;font-style:normal;text-align:center;line-height:28px;box-shadow:0 4px 12px #6b263655}.style-option input:checked+span{border-color:#df7385;box-shadow:0 8px 22px #c95c7426}.style-option input:checked+span i{display:block}.style-note{text-align:center;color:#ac898e;font-size:11px;margin:14px 0 0}@media(max-width:380px){.style-grid{grid-template-columns:1fr}.style-head{display:block}.style-head p{margin-top:6px}}

/* 仅恢复最初的小程序“等待开奖”倒计时界面；结果页仍沿用现有样式。 */
.lottery-waiting{position:relative;min-height:75vh;margin:0 -24px;padding:48px 24px 100px;overflow:hidden;background:linear-gradient(180deg,#fdf2f4 0%,#fdf6f6 40%,#fff9f9 100%);text-align:center}.waiting-head{margin-bottom:25px;position:relative;z-index:2}.waiting-head h1{margin:0 0 8px;color:#5a3a45;font-size:28px;letter-spacing:1px}.waiting-head p{margin:0;color:#9e7a85;font-size:14px}.lottery-waiting .countdown-card{position:relative;z-index:2;display:flex;max-width:560px;margin:0 auto;padding:26px 20px;flex-direction:column;gap:10px;border:0;border-radius:20px;background:#fff;box-shadow:0 4px 16px rgba(255,169,179,.14)}.lottery-waiting .countdown-card small{color:#9e7a85;font-size:14px}.lottery-waiting .countdown-card b{color:#ffa9b3;font-size:32px;letter-spacing:2px;font-variant-numeric:tabular-nums}.lottery-waiting .countdown-card span{color:#bfa0a9;font-size:12px}.lottery-waiting footer{position:absolute;right:0;bottom:28px;left:0;display:flex;justify-content:center;gap:20px}.lottery-waiting footer i{color:rgba(255,169,179,.25);font-size:20px;font-style:normal;animation:waiting-heart 3s ease-in-out infinite}.lottery-waiting footer i:nth-child(2){animation-delay:1s}.lottery-waiting footer i:nth-child(3){animation-delay:2s}@keyframes waiting-heart{50%{transform:translateY(-6px)}}@media(min-width:800px){.lottery-waiting{margin-right:-45px;margin-left:-45px}}@media(max-width:560px){.lottery-waiting{margin-right:-16px;margin-left:-16px}}
