:root{color:#2f332b;background:#f4efe3;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:16px;--paper: #f7f1e5;--paper-deep: #eee4d1;--ink: #2f332b;--muted: #7b715f;--line: #d8c9ad;--jade: #6f806b;--jade-soft: #dfe8de;--wood: #6a3d2b;--wood-deep: #452519;--gold: #a58b65}*{box-sizing:border-box}html{width:100%;min-width:320px;touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,rgba(255,250,240,.04),rgba(247,241,229,.34)),url(/assets/buddhist-bg-custom.png),var(--paper);background-attachment:fixed;background-position:center top;background-repeat:no-repeat;background-size:min(100vw,520px) auto,min(100vw,520px) auto,auto;animation:bgBreath 16s ease-in-out infinite alternate}button,input,select,textarea{font:inherit}button{border:0}.app-shell{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.app-main{width:100%}.page{width:100%;max-width:520px;min-height:100vh;margin:0 auto;padding:20px 14px 96px;background:linear-gradient(180deg,rgba(255,250,240,.08),rgba(247,241,229,.7));-webkit-backdrop-filter:saturate(1.04);backdrop-filter:saturate(1.04)}.page-header{position:relative;padding:30px 4px;text-align:center;animation:fadeUp .7s ease both}.page-header:after{content:"";display:block;width:86px;height:3px;margin:14px auto 0;border-radius:999px;background:linear-gradient(90deg,transparent,var(--wood),transparent)}.page-header p{margin:0 0 8px;color:#66765f;font-family:STKaiti,KaiTi,Kaiti SC,Songti SC,serif;font-size:18px;font-weight:600;letter-spacing:0;text-shadow:0 2px 10px rgba(255,250,240,.88)}.page-header h1{margin:0;color:#4a2d21;font-family:STXingkai,Xingkai SC,STKaiti,KaiTi,Kaiti SC,Songti SC,serif;font-size:clamp(38px,12vw,58px);font-weight:700;line-height:1.2;letter-spacing:0;text-shadow:0 2px 0 rgba(230,196,114,.28),0 12px 24px rgba(88,55,30,.16)}.product-list,.record-list{display:grid;gap:14px}.product-card{overflow:hidden;border:1px solid rgba(165,139,101,.32);border-radius:8px;background:rgba(255,252,244,.78);box-shadow:0 18px 36px #52483021;-webkit-backdrop-filter:blur(10px) saturate(1.08);backdrop-filter:blur(10px) saturate(1.08);transform-origin:center bottom;animation:cardEnter .64s ease both;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.product-card:nth-child(2),.record-card:nth-child(2){animation-delay:.08s}.product-card:nth-child(3),.record-card:nth-child(3){animation-delay:.16s}.product-card:active{transform:translateY(2px) scale(.992);box-shadow:0 10px 24px #5248301f}.product-card__media{position:relative;width:100%;aspect-ratio:16 / 10;background:var(--paper-deep);overflow:hidden}.product-card__media img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);animation:coverFloat 5.6s ease-in-out infinite alternate}.product-card__shine{position:absolute;inset:-30% auto -30% -42%;width:38%;background:linear-gradient(90deg,transparent,rgba(255,250,240,.38),transparent);transform:rotate(18deg);animation:shineSweep 4.8s ease-in-out infinite;pointer-events:none}.product-card__body{padding:13px 14px 14px}.product-card__no{margin:0 0 4px;color:var(--gold);font-size:16px;font-family:Georgia,Times New Roman,serif;font-weight:700;line-height:1.25}.product-card h3{margin:0;color:var(--ink);font-size:17px;font-weight:650;line-height:1.35;min-width:0}.product-card__title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.product-card__title-row button,.form__submit,.fixed-submit{min-height:42px;border-radius:999px;background:linear-gradient(135deg,var(--wood),var(--wood-deep));color:#fffaf0;font-weight:700;box-shadow:0 8px 18px #45251938;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.product-card__title-row button{flex:0 0 auto;min-width:88px;padding:0 18px}.product-card__title-row button:active,.form__submit:active,.form__cancel:active,.fixed-submit:active,.topbar button:active,.tabbar__item:active{transform:scale(.96);filter:brightness(.98)}.tabbar{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(2,1fr);max-width:520px;margin:0 auto;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(165,139,101,.34);background:rgba(250,245,235,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:tabbarRise .52s ease both}.tabbar__item{display:grid;justify-items:center;gap:2px;min-height:52px;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;transition:background .24s ease,color .24s ease,transform .24s ease}.tabbar__item.active{background:var(--jade-soft);color:var(--wood);transform:translateY(-2px)}.tabbar__icon{font-size:24px;line-height:24px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:rgba(47,51,43,.42);animation:maskFade .22s ease both}.user-modal{width:100%;max-width:520px;border-radius:8px;border:1px solid rgba(165,139,101,.36);background:#fffaf0;padding:18px;box-shadow:0 18px 50px #2f231638;animation:sheetUp .36s ease both}.user-modal h2{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,PingFang SC,serif;font-size:20px}.user-modal p{margin:6px 0 0;color:var(--muted);font-size:13px}.form{display:grid;gap:12px;margin-top:18px}.form label{display:grid;gap:7px;color:#5d5548;font-size:13px}.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fffdf7;color:var(--ink);outline:none}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--jade);box-shadow:0 0 0 3px #6f806b24}.form input,.form select{height:44px;padding:0 12px}.form textarea{resize:none;padding:10px 12px}.form__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form__error{margin:0;color:#9f3d2c;font-size:13px}.form__actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px;margin-top:4px}.form__submit{width:100%}.form__cancel{width:100%;min-height:42px;border:1px solid rgba(165,139,101,.44);border-radius:999px;background:rgba(255,253,247,.82);color:var(--muted);font-weight:700;transition:transform .2s ease,background .2s ease,color .2s ease}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;max-width:520px;margin:0 auto 16px;padding:8px 0;background:var(--paper);animation:fadeUp .42s ease both}.topbar button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(165,139,101,.36);background:#fffaf0;color:var(--wood);font-size:32px;line-height:32px}.topbar h1{margin:0;text-align:center;color:var(--ink);font-family:Georgia,Times New Roman,PingFang SC,serif;font-size:18px}.purchase-card,.quantity-panel,.record-card{border:1px solid rgba(165,139,101,.32);border-radius:8px;background:rgba(255,252,244,.94);box-shadow:0 14px 30px #5b41261a;animation:cardEnter .56s ease both}.purchase-card{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:12px}.purchase-card img{width:118px;height:118px;border-radius:8px;object-fit:cover}.purchase-card p{margin:0 0 6px;color:var(--gold);font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700;line-height:1.25}.purchase-card h2{margin:0 0 8px;font-size:18px}.purchase-card span{display:block;margin-top:8px;color:var(--muted);font-size:13px}.quantity-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:16px 14px}.stepper{display:grid;grid-template-columns:36px 52px 36px;overflow:hidden;border:1px solid var(--line);border-radius:8px}.stepper button,.stepper input{width:100%;height:36px;border:0;text-align:center;background:#fffdf7}.stepper button{color:var(--wood);font-size:20px}.stepper button:disabled,.fixed-submit:disabled{opacity:.55}.fixed-submit{position:fixed;right:max(14px,calc((100vw - 520px)/2 + 14px));bottom:calc(18px + env(safe-area-inset-bottom));width:132px;animation:floatSubmit 2.8s ease-in-out infinite}.record-card{display:grid;grid-template-columns:1fr 1.25fr .65fr;gap:10px;padding:14px}.record-card span{display:block;margin-bottom:5px;color:var(--gold);font-size:12px}.record-card strong{color:var(--ink);font-size:14px;word-break:break-all}.state,.empty{padding:42px 12px;text-align:center;color:var(--muted)}.admin-page{min-height:100vh;padding:18px 14px 40px;background:linear-gradient(180deg,rgba(255,250,240,.8),rgba(239,229,208,.92)),url(/assets/buddhist-bg-custom.png),var(--paper);background-position:center top;background-repeat:no-repeat;background-size:min(100vw,560px) auto,min(100vw,560px) auto,auto}.admin-login{display:grid;place-items:center;min-height:calc(100vh - 58px)}.admin-login__panel,.admin-records{width:100%;max-width:760px;margin:0 auto;border:1px solid rgba(165,139,101,.34);border-radius:8px;background:rgba(255,252,244,.86);box-shadow:0 18px 38px #52483024;-webkit-backdrop-filter:blur(12px) saturate(1.06);backdrop-filter:blur(12px) saturate(1.06)}.admin-login__panel{padding:24px 18px}.admin-login__panel p,.admin-records__header p{margin:0 0 6px;color:var(--muted);font-size:13px}.admin-login__panel h1,.admin-records__header h1{margin:0;color:var(--ink);font-family:STKaiti,KaiTi,Kaiti SC,Songti SC,serif;font-size:30px}.admin-login__form{display:grid;gap:12px;margin-top:22px}.admin-login__form input{width:100%;height:46px;border:1px solid var(--line);border-radius:8px;background:#fffdf7;color:var(--ink);padding:0 14px;outline:none}.admin-login__form input:focus{border-color:var(--jade);box-shadow:0 0 0 3px #6f806b24}.admin-login__form button,.admin-records__header button{min-height:42px;border-radius:999px;background:linear-gradient(135deg,var(--wood),var(--wood-deep));color:#fffaf0;font-weight:700;box-shadow:0 8px 18px #45251938}.admin-login__error{margin:0;color:#9f3d2c;font-size:13px}.admin-records{padding:16px}.admin-records__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(165,139,101,.28)}.admin-records__header button{flex:0 0 auto;min-width:82px;padding:0 16px}.admin-records__list{display:grid;gap:10px;margin-top:14px}.admin-record{display:grid;grid-template-columns:.8fr 1fr 1.25fr 1.6fr 1fr .55fr;gap:10px;padding:12px;border:1px solid rgba(165,139,101,.24);border-radius:8px;background:rgba(255,253,247,.76)}.admin-record span{display:block;margin-bottom:5px;color:var(--gold);font-size:12px}.admin-record strong{color:var(--ink);font-size:13px;line-height:1.45;word-break:break-all}@media (max-width: 640px){.admin-record{grid-template-columns:1fr 1fr}.admin-record div:nth-child(4){grid-column:1 / -1}}@media (min-width: 640px){.page{padding-top:28px}}@keyframes bgBreath{0%{background-position:center top}to{background-position:center -18px}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes cardEnter{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes coverFloat{0%{transform:scale(1.02) translateZ(0)}to{transform:scale(1.075) translate3d(0,-8px,0)}}@keyframes shineSweep{0%,42%{left:-42%}72%,to{left:115%}}@keyframes tabbarRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes maskFade{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes floatSubmit{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
