:root{--wx-green: #07C160;--wx-green-dark: #06AD56;--wx-bg: #EDEDED;--wx-bar-bg: #F7F7F7;--wx-header-bg: #FFFFFF;--wx-text: #191919;--wx-text-secondary: #888888;--wx-border: #ECECEC;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--wx-bg);color:var(--wx-text)}@media(min-width:431px){body{background-color:#333}#root{max-width:430px;margin:0 auto;min-height:100vh;box-shadow:0 0 0 1px #0000001a}}#root{min-height:100vh;display:flex;flex-direction:column;max-width:100vw}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.toast-wrap{position:fixed;left:50%;top:24%;transform:translate(-50%);z-index:10000;pointer-events:none}.toast-toast{padding:12px 24px;min-width:160px;max-width:80vw;font-size:15px;line-height:1.4;text-align:center;border-radius:10px;box-shadow:0 4px 16px #00000026;animation:toast-in .25s ease-out}.toast-toast-success{color:#fff;background:var(--wx-green, #07c160)}.toast-toast-error{color:#fff;background:var(--wx-red, #ee0a24)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.image-preview-overlay{position:fixed;inset:0;z-index:9999;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:48px 56px;box-sizing:border-box}.image-preview-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:none;background:#ffffff26;color:#fff;font-size:28px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2}.image-preview-close:hover{background:#ffffff40}.image-preview-prev,.image-preview-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;background:#ffffff26;color:#fff;font-size:36px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2}.image-preview-prev:hover,.image-preview-next:hover{background:#ffffff4d}.image-preview-prev{left:12px}.image-preview-next{right:12px}.image-preview-content{max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.image-preview-img{max-width:100%;max-height:calc(100vh - 96px);object-fit:contain;-webkit-user-select:none;user-select:none}.image-preview-counter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:14px;color:#fffc}.post-card{display:block;background:#ffffffd9;border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #00000014;min-height:80px;border:1px solid rgba(255,255,255,.5)}.post-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.post-card-avatar-wrap{flex-shrink:0;width:32px;height:32px;border-radius:50%;overflow:hidden;border:1px solid var(--wx-border)}.post-card-avatar{width:100%;height:100%;object-fit:cover}.post-card-avatar-default{object-fit:contain;padding:4px;background:var(--wx-bar-bg)}.post-card-username{font-size:13px;font-weight:500;color:var(--wx-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-card-content{margin:0 0 10px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,sans-serif;font-size:15px;font-weight:500;line-height:1.52;letter-spacing:.02em;color:var(--wx-text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-card-images{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}.post-card-image-wrap{display:block;cursor:pointer;flex-shrink:0}.post-card-image{width:72px;height:72px;object-fit:cover;border-radius:8px;background:var(--wx-bar-bg);display:block}.post-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:12px;font-weight:500;color:var(--wx-text-secondary);letter-spacing:.01em}.post-card-time{margin-right:4px}.post-card-stat{display:inline-flex;align-items:center;gap:2px}.skeleton{background:var(--wx-bar-bg, #ebedf0);border-radius:6px}.skeleton-shimmer{position:relative;overflow:hidden}.skeleton-shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:skeleton-shimmer 1.2s ease-in-out infinite}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-post{background:#ffffffd9;border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #00000014;min-height:80px;border:1px solid rgba(255,255,255,.5)}.skeleton-post-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.skeleton-post-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%}.skeleton-post-username{width:80px;height:14px}.skeleton-post-line{height:14px;margin-bottom:8px;max-width:100%}.skeleton-post-line-short{width:60%}.skeleton-post-images{display:flex;gap:6px;margin-bottom:10px}.skeleton-post-img{width:72px;height:72px;border-radius:8px}.skeleton-post-meta{display:flex;align-items:center;gap:12px}.skeleton-post-meta-item{width:48px;height:12px}.treehole-page{position:relative;min-height:100%;background:transparent}.treehole-error{margin:12px 16px;padding:10px 12px;font-size:13px;color:var(--wx-red, #ee0a24);background:#ee0a2414;border-radius:8px}.treehole-loading{padding:24px 16px;text-align:center;font-size:14px;color:var(--wx-text-secondary)}.treehole-load-more{display:block;width:100%;margin-top:12px;padding:10px;font-size:14px;color:var(--wx-text-secondary);background:#fff9;border:1px solid var(--wx-border);border-radius:8px;cursor:pointer}.treehole-load-more:disabled{opacity:.7;cursor:not-allowed}.treehole-content{position:relative;z-index:1;padding:12px 12px 24px}.treehole-grid{display:flex;gap:12px;align-items:flex-start}.treehole-column{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.treehole-column-right{padding-top:32px}.treehole-fab{position:fixed;right:20px;bottom:calc(50px + 16px + var(--safe-bottom, 0px));width:56px;height:56px;border-radius:50%;background:var(--wx-green);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #07c16066;--pressable-shadow-active: 0 3px 10px rgba(7, 193, 96, .28);z-index:90}.treehole-fab-tag{position:absolute;top:-4px;left:-6px;padding:0 6px;border-radius:999px;background:#faad14;color:#fff;font-size:10px;font-weight:600;line-height:1.5}.treehole-fab:hover{background:var(--wx-green-dark);color:#fff}:root{--eat-primary: #1677FF;--eat-primary-light: #69b1ff;--eat-bg: #F5F5F5;--eat-card: #FFFFFF;--eat-text: #333333;--eat-text-secondary: #888888}.canteen-area-page{min-height:100%;position:relative;padding:24px 16px 32px;box-sizing:border-box;overflow-x:hidden}.canteen-area-bg{position:absolute;inset:0;z-index:0;background-color:var(--eat-bg);background-size:cover;background-position:center;background-repeat:no-repeat;filter:blur(20px);opacity:.6;pointer-events:none}.canteen-area-bg{background-image:linear-gradient(160deg,#e0e8f0,#c5d4e8,#b0c4e0)}.canteen-area-content{position:relative;z-index:1}.canteen-area-loading,.canteen-area-error{position:relative;z-index:1;padding:24px 16px;font-size:14px;text-align:center;color:var(--eat-text-secondary)}.canteen-area-error{color:var(--wx-red, #ee0a24)}.canteen-area-title{margin:0 0 20px;font-size:26px;font-weight:700;color:var(--eat-text);text-align:center}.canteen-area-rankings-link{display:block;margin:0 0 24px;text-decoration:none;color:inherit}.canteen-area-rankings-card{height:120px;padding:0 24px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,var(--eat-primary) 0%,var(--eat-primary-light) 100%);border-radius:20px;box-shadow:0 4px 16px #1677ff59;--pressable-scale: .93;--pressable-shadow-active: 0 3px 12px rgba(22, 119, 255, .25)}.canteen-area-rankings-title{margin:0 0 6px;font-size:24px;font-weight:700;color:#fff}.canteen-area-rankings-sub{margin:0;font-size:14px;color:#fffc}.canteen-area-sections{display:flex;flex-direction:column;gap:12px}.canteen-area-section-wrap{width:100%;box-sizing:border-box}.canteen-area-section-offset{margin-left:20%;width:80%}.canteen-area-section-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--eat-card);border-radius:16px;box-shadow:0 2px 12px #0000000f;--pressable-scale: .93;--pressable-shadow-active: 0 1px 8px rgba(0, 0, 0, .05);text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}.canteen-area-section-card:hover{box-shadow:0 4px 16px #0000001a}.canteen-area-section-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--eat-primary);color:#fff;border-radius:50%}.canteen-area-section-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.canteen-area-section-name{font-size:20px;font-weight:700;color:var(--eat-text)}.canteen-area-section-hint{font-size:14px;color:var(--eat-text-secondary)}.canteen-area-section-arrow{flex-shrink:0;font-size:18px;color:var(--eat-text-secondary)}.about-page{min-height:100%;padding:0;background:transparent}.about-lang-toggle{display:flex;justify-content:flex-end;align-items:center;padding:8px 16px 4px;gap:4px;font-size:12px;color:var(--wx-text-secondary, #888)}.about-lang-btn{border:none;background:none;padding:2px 4px;font-size:12px;color:inherit}.about-lang-btn.active{font-weight:600;color:var(--wx-text, #111)}.about-lang-sep{opacity:.6}.about-list{list-style:none;margin:0;padding:0;border-radius:0;overflow:hidden;box-shadow:none}.about-list-item{margin:0}.about-list-item+.about-list-item .about-list-row{border-top:1px solid rgba(0,0,0,.06)}.about-list-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-decoration:none;color:inherit;transition:background .2s}.about-list-row-link:hover{background:#ffffffd9}.about-list-row-static{cursor:default}.about-list-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--wx-green, #07c160)}.about-list-icon svg{width:22px;height:22px}.about-list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.about-list-label{font-size:15px;font-weight:600;color:var(--wx-text, #111)}.about-list-hint{font-size:12px;color:var(--wx-text-secondary, #888)}.about-list-arrow{flex-shrink:0;font-size:16px;color:var(--wx-text-secondary, #888);font-weight:300}.empty-state{padding:32px 24px;text-align:center}.empty-state-title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--wx-text)}.empty-state-desc{margin:0 0 16px;font-size:14px;color:var(--wx-text-secondary);line-height:1.5}.empty-state-action{margin-top:8px}.empty-state-btn{display:inline-block;padding:10px 20px;font-size:15px;font-weight:500;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;text-decoration:none;cursor:pointer;font-family:inherit;transition:background .2s,color .2s}.empty-state-btn:hover{background:#07c16014;color:var(--wx-green)}.empty-state-btn:focus-visible{outline:2px solid var(--wx-green);outline-offset:2px}:root{--myzone-primary: #1677FF;--myzone-bg: #F5F5F5;--myzone-card: #FFFFFF;--myzone-text: #333333;--myzone-text-secondary: #888888}.myzone-page{min-height:100%;background:var(--myzone-bg);padding-bottom:24px}.myzone-error{margin:0 16px 12px;padding:10px 12px;font-size:13px;color:var(--wx-red, #ee0a24);background:#ee0a2414;border-radius:8px}.myzone-header{height:280px;background-color:#1a1a1a;background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}.myzone-header-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 20px 24px;box-sizing:border-box}.myzone-header-top{position:absolute;top:0;left:0;right:0;height:env(safe-area-inset-top,44px);min-height:44px}.myzone-header-body{display:flex;flex-direction:column;align-items:center;text-align:center}.myzone-header-avatar-wrap{width:80px;height:80px;border-radius:50%;overflow:hidden;border:3px solid rgba(255,255,255,.9);margin-bottom:10px;cursor:pointer;flex-shrink:0}.myzone-header-avatar{width:100%;height:100%;object-fit:cover}.myzone-header-avatar-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fff3;color:#fff;font-size:18px}.myzone-header-avatar-default{object-fit:contain;padding:12px;background:#ffffff40}.myzone-header-card{background:#87ceebd9;border-radius:16px;padding:12px 20px 14px;margin-bottom:12px;width:100%;max-width:320px;box-sizing:border-box;box-shadow:0 2px 12px #00000026}.myzone-header-name{margin:0 0 10px;font-size:18px;font-weight:600;color:#1a1a1a}.myzone-admin-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:#8a5b00;background:linear-gradient(135deg,#ffe58f,#ffc53d,#faad14);box-shadow:0 0 0 1px #faad1480}.myzone-header-stats{display:flex;align-items:center;justify-content:center;gap:24px;margin:0;color:#333;font-size:14px}.myzone-header-stat{color:inherit;text-decoration:none}.myzone-header-stat strong{margin-right:4px;font-weight:600}.myzone-header-stat-link{color:var(--myzone-primary, #1677FF)}.myzone-header-stat-link:hover{text-decoration:underline}.myzone-header-edit{padding:8px 24px;border-radius:999px;border:1px solid rgba(255,255,255,.9);background:transparent;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.myzone-header-edit:hover{background:#fff3}.myzone-entries{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:12px 16px 0;background:var(--myzone-card);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000f}.myzone-entry,.myzone-entry-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;text-decoration:none;color:var(--myzone-text);font-size:14px;background:var(--myzone-card);transition:background .2s;border:none;cursor:pointer;font:inherit}.myzone-entry:hover,.myzone-entry-btn:hover{background:var(--myzone-bg)}.myzone-entry-disabled{cursor:default;opacity:.85}.myzone-entry-disabled:hover{background:var(--myzone-card)}.myzone-entry-icon{font-size:24px;margin-bottom:6px}.myzone-entry-label{font-weight:500}.myzone-entry-hint{font-size:11px;color:var(--myzone-text-secondary);margin-top:2px}.myzone-tabs{display:flex;align-items:center;justify-content:center;gap:32px;margin-top:16px;padding:0 16px 12px;border-bottom:1px solid rgba(0,0,0,.08);background:var(--myzone-card)}.myzone-tab{padding:10px 4px;font-size:15px;font-weight:500;color:var(--myzone-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s;margin-bottom:-1px}.myzone-tab:hover{color:var(--myzone-text)}.myzone-tab.active{color:var(--myzone-primary);border-bottom-color:var(--myzone-primary)}.myzone-content{padding:12px 16px 0;background:var(--myzone-bg)}.myzone-grid-wrap{min-height:120px}.myzone-loading,.myzone-error-inline{text-align:center;padding:24px 16px;font-size:14px;color:var(--myzone-text-secondary)}.myzone-error-inline{color:var(--wx-red, #ee0a24)}.myzone-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}.myzone-grid-item{display:block;text-decoration:none;color:inherit;background:var(--myzone-card);border-radius:4px;overflow:hidden;aspect-ratio:1}.myzone-grid-item-media{position:relative;width:100%;height:100%;background:#eee}.myzone-grid-item-media img{width:100%;height:100%;object-fit:cover}.myzone-grid-item-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:#e8e8e8}.myzone-grid-item-meta{position:absolute;bottom:0;left:0;right:0;padding:4px 6px;font-size:11px;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.6),transparent)}.myzone-grid-item-title{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;font-size:12px;font-weight:500;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.myzone-grid-item-rating{position:absolute;top:6px;right:6px;font-size:11px;padding:2px 6px;background:#00000080;color:#fff;border-radius:4px}.myzone-grid-reviews .myzone-grid-item-title{font-size:12px}.myzone-grid-item-shop{position:absolute;top:6px;left:6px;font-size:10px;padding:2px 6px;background:#00000080;color:#fff;border-radius:4px;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.myzone-logout{display:block;width:calc(100% - 32px);max-width:320px;margin:24px auto 0;padding:12px 20px;border-radius:999px;border:1px solid var(--myzone-text-secondary);background:transparent;color:var(--myzone-text-secondary);font-size:14px;cursor:pointer;transition:background .2s,color .2s}.myzone-logout:hover{background:#e6434014;border-color:#e64340;color:#e64340}.top-bar{position:sticky;top:0;z-index:100;background:var(--wx-header-bg);border-bottom:1px solid var(--wx-border);padding-top:var(--safe-top)}.top-bar-inner{height:44px;display:flex;align-items:center;justify-content:center;position:relative;padding:0 16px}.top-bar-placeholder{width:24px;height:24px;flex-shrink:0}.top-bar-back{position:absolute;left:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--wx-text)}.top-bar-back:hover{color:var(--wx-green)}.top-bar-back:active{opacity:.7}.top-bar-title{position:absolute;left:50%;transform:translate(-50%);margin:0;display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;color:var(--wx-text);white-space:nowrap}.top-bar-title-text{margin:0 4px;max-width:60vw;overflow:hidden;text-overflow:ellipsis}.top-bar-title-decor{width:36px;height:36px;flex-shrink:0;background-repeat:no-repeat;background-position:center;background-size:contain}.top-bar-title-decor-left{margin-right:2px;background-image:url(/topbar-left.png)}.top-bar-title-decor-right{margin-left:2px;background-image:url(/topbar-right.png)}.top-bar-mailbox{position:absolute;right:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--wx-text)}.top-bar-mailbox:hover{color:var(--wx-green)}.top-bar-mailbox:active{opacity:.7}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:calc(50px + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--wx-bar-bg);border-top:1px solid var(--wx-border);display:flex;align-items:flex-start;justify-content:space-around;z-index:100}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:6px;padding-bottom:4px;color:var(--wx-text-secondary);transition:color .2s}.tab-item.active{color:var(--wx-green)}.tab-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-bottom:2px}.tab-icon svg{width:24px;height:24px}.tab-label{font-size:10px;line-height:1.2;text-align:center;white-space:normal;max-width:100%;padding:0 2px}.app-layout{min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(50px + var(--safe-bottom))}.app-main{position:relative;flex:1;min-height:0;overflow:auto;background:var(--wx-bg)}.app-main-bg{position:fixed;top:calc(44px + var(--safe-top, 0px));bottom:calc(50px + var(--safe-bottom, 0px));left:50%;transform:translate(-50%);width:100%;max-width:430px;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0}.app-main-inner{position:relative;z-index:1;min-height:100%}.app-ann-modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.app-ann-modal{width:100%;max-width:360px;max-height:80vh;background:#fffffffa;border-radius:16px;box-shadow:0 10px 30px #0000002e;padding:16px 16px 12px;box-sizing:border-box;display:flex;flex-direction:column}.app-ann-title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--wx-text, #111)}.app-ann-list{flex:1;overflow-y:auto;padding-right:4px}.app-ann-item{padding:10px 8px 8px;border-radius:10px;background:#00000005;margin-bottom:8px}.app-ann-item-title{margin:0 0 4px;font-size:14px;line-height:1.4;color:var(--wx-text, #111);white-space:pre-wrap;word-break:break-word}.app-ann-item-meta{margin:0 0 6px;font-size:11px;color:var(--wx-text-secondary, #999)}.app-ann-know-btn,.app-ann-know-all-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:999px;border:none;cursor:pointer;font-size:13px;font-weight:500;font-family:inherit}.app-ann-know-btn{background:var(--wx-green, #07c160);color:#fff}.app-ann-know-all-btn{margin-top:6px;align-self:flex-end;background:#0000000a;color:var(--wx-text-secondary, #666)}.app-ann-know-btn:hover{background:var(--wx-green-dark, #059048)}.app-ann-know-all-btn:hover{background:#00000014}.app-slide-wrap{position:absolute;inset:0;overflow:hidden}.app-slide-track{display:flex;width:200%;height:100%}.app-slide-pane{width:50%;flex-shrink:0;height:100%;overflow:auto}.app-slide-wrap.app-slide-forward .app-slide-track{transform:translate(0)}.app-slide-wrap.app-slide-forward.app-slide-end .app-slide-track{transform:translate(-50%);transition:transform .28s cubic-bezier(.25,.1,.25,1)}.app-slide-wrap.app-slide-back .app-slide-track{transform:translate(-50%)}.app-slide-wrap.app-slide-back.app-slide-end .app-slide-track{transform:translate(0);transition:transform .28s cubic-bezier(.25,.1,.25,1)}.login-page{min-height:100vh;background:var(--wx-bg);display:flex;align-items:center;justify-content:center;padding:24px}.login-box{width:100%;max-width:360px;background:#fff;border-radius:12px;padding:32px 24px;box-shadow:0 2px 12px #0000000f}.login-title{margin:0 0 4px;font-size:22px;font-weight:600;color:var(--wx-text);text-align:center}.login-subtitle{margin:0 0 24px;font-size:14px;color:var(--wx-text-secondary);text-align:center}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:14px;font-weight:500;color:var(--wx-text)}.login-field input{padding:12px 14px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;background:#fff;color:var(--wx-text)}.login-field input::placeholder{color:var(--wx-text-secondary)}.login-field input:focus{outline:none;border-color:var(--wx-green)}.login-message{margin:0;padding:10px 12px;border-radius:8px;font-size:13px;text-align:center}.login-message-success{background:#07c1601f;color:var(--wx-green-dark)}.login-message-error{background:#ff00000f;color:#c00}.login-btn{width:100%;padding:12px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;border:none;transition:opacity .2s}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-btn-primary{background:var(--wx-green);color:#fff}.login-btn-primary:hover:not(:disabled){background:var(--wx-green-dark)}.login-btn-skip{background:transparent;color:var(--wx-text-secondary);margin-top:-4px}.login-btn-skip:hover:not(:disabled){color:var(--wx-text);background:var(--wx-bg)}.login-footer{margin:20px 0 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.login-footer a{color:var(--wx-green);text-decoration:none}.login-footer a:hover{text-decoration:underline}.register-page{min-height:100vh;background:var(--wx-bg);display:flex;align-items:center;justify-content:center;padding:24px}.register-box{width:100%;max-width:360px;background:#fff;border-radius:12px;padding:32px 24px;box-shadow:0 2px 12px #0000000f}.register-title{margin:0 0 4px;font-size:22px;font-weight:600;color:var(--wx-text);text-align:center}.register-subtitle{margin:0 0 20px;font-size:14px;color:var(--wx-text-secondary);text-align:center}.register-role-tabs{display:flex;gap:0;margin-bottom:24px;background:var(--wx-bar-bg);border-radius:10px;padding:4px;border:1px solid var(--wx-border)}.register-role-tab{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;color:var(--wx-text-secondary);background:transparent;cursor:pointer;transition:background .2s,color .2s}.register-role-tab:hover{color:var(--wx-text)}.register-role-tab.is-active{background:#fff;color:var(--wx-green);box-shadow:0 1px 3px #00000014}.register-role-hint{margin:0 0 16px;padding:10px 12px;font-size:13px;color:var(--wx-text-secondary);background:#07c1600f;border-radius:8px;border-left:3px solid var(--wx-green)}.register-form{display:flex;flex-direction:column;gap:16px}.register-field{display:flex;flex-direction:column;gap:6px}.register-field label{font-size:14px;font-weight:500;color:var(--wx-text)}.register-field input{padding:12px 14px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;background:#fff;color:var(--wx-text)}.register-field input::placeholder{color:var(--wx-text-secondary)}.register-field input:focus{outline:none;border-color:var(--wx-green)}.register-message{margin:0;padding:10px 12px;border-radius:8px;font-size:13px;text-align:center}.register-message-success{background:#07c1601f;color:var(--wx-green-dark)}.register-message-error{background:#ff00000f;color:#c00}.register-btn{width:100%;padding:12px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;border:none}.register-btn:disabled{opacity:.7;cursor:not-allowed}.register-btn-primary{background:var(--wx-green);color:#fff}.register-btn-primary:hover:not(:disabled){background:var(--wx-green-dark)}.register-footer{margin:20px 0 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.register-footer a{color:var(--wx-green);text-decoration:none}.register-footer a:hover{text-decoration:underline}.register-code-row{display:flex;gap:8px;align-items:center}.register-code-row input{flex:1}.register-btn-code{flex-shrink:0;padding:8px 10px;font-size:12px;border-radius:999px;border:none;background:#2563eb;color:#fff;cursor:pointer}.register-btn-code:disabled{background:#9ca3af;cursor:not-allowed}.reset-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.reset-box{width:100%;max-width:420px;padding:24px 20px 28px;background:#ffffffeb;border-radius:16px;box-shadow:0 10px 30px #0f172a1f}.reset-title{margin:0;font-size:20px;font-weight:700;text-align:center;color:#0f172a}.reset-subtitle{margin:6px 0 18px;font-size:14px;text-align:center;color:#64748b}.reset-form{display:flex;flex-direction:column;gap:12px}.reset-field{display:flex;flex-direction:column;gap:4px}.reset-field label{font-size:13px;color:#0f172a}.reset-field input{padding:8px 10px;border-radius:10px;border:1px solid #d4d4d8;font-size:14px;outline:none}.reset-field input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb33}.reset-code-row{display:flex;gap:8px;align-items:center}.reset-code-row input{flex:1}.reset-btn-code{flex-shrink:0;padding:8px 10px;font-size:12px;border-radius:999px;border:none;background:#2563eb;color:#fff;cursor:pointer}.reset-btn-code:disabled{background:#9ca3af;cursor:not-allowed}.reset-message{margin:4px 0 0;font-size:13px;text-align:center}.reset-message-error{color:#b91c1c}.reset-message-success{color:#15803d}.reset-btn{margin-top:6px;width:100%;padding:10px 12px;border-radius:999px;border:none;font-size:14px;font-weight:600;cursor:pointer}.reset-btn-primary{background:#16a34a;color:#fff}.reset-btn-primary:disabled{background:#a3a3a3;cursor:not-allowed}.reset-footer{margin:18px 0 0;font-size:13px;color:#64748b;text-align:center}.reset-footer a{color:#16a34a;text-decoration:none}.reset-footer a:hover{text-decoration:underline}.postnew-page{padding:16px;min-height:100%;background:transparent}.postnew-error{margin:0 0 12px;padding:10px 12px;font-size:13px;color:var(--wx-red, #ee0a24);background:#ee0a2414;border-radius:8px}.postnew-anonymous-hint{background:#ffffffeb}.postnew-anonymous-hint{margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.45;color:var(--wx-text-secondary);border-radius:8px;border-left:3px solid var(--wx-green)}.postnew-form{display:flex;flex-direction:column;gap:24px;background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f}.postnew-section{display:flex;flex-direction:column;gap:8px}.postnew-label{font-size:14px;font-weight:500;color:var(--wx-text)}.postnew-textarea{width:100%;min-height:120px;padding:12px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;font-family:inherit;resize:vertical;background:#fff}.postnew-textarea::placeholder{color:var(--wx-text-secondary)}.postnew-images{display:flex;flex-wrap:wrap;gap:12px}.postnew-image-wrap{position:relative;width:96px;height:96px;border-radius:8px;overflow:hidden;background:var(--wx-bar-bg)}.postnew-image{width:100%;height:100%;object-fit:cover}.postnew-image-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.postnew-image-add{width:96px;height:96px;border:1px dashed var(--wx-border);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--wx-bar-bg)}.postnew-image-add:hover{border-color:var(--wx-green);color:var(--wx-green)}.postnew-file-input{position:absolute;width:0;height:0;opacity:0}.postnew-image-add-inner{font-size:32px;color:var(--wx-text-secondary)}.postnew-image-add:hover .postnew-image-add-inner{color:var(--wx-green)}.postnew-submit{width:100%;padding:14px;border:none;border-radius:8px;background:var(--wx-green);color:#fff;font-size:16px;font-weight:500;cursor:pointer}.postnew-submit:hover{background:var(--wx-green-dark)}.like-burst-wrap{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%)}.like-burst-heart{position:absolute;left:0;top:0;font-size:18px;color:#ff4d6a;opacity:0;animation:like-burst-fly .65s ease-out forwards;animation-delay:calc(var(--i) * .02s)}@keyframes like-burst-fly{0%{transform:translate(0) scale(.5);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(1.2);opacity:0}}.post-detail-page{padding:12px 12px 80px;min-height:100%;background:transparent}.post-detail-empty{text-align:center;color:var(--wx-text-secondary);margin:24px 0}.post-detail-loading,.post-detail-error{text-align:center;padding:24px 16px;font-size:14px;color:var(--wx-text-secondary)}.post-detail-error{color:var(--wx-red, #ee0a24)}.post-detail-card{background:#ffffffeb;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 1px 3px #00000014}.post-detail-author{display:flex;align-items:center;gap:10px;margin-bottom:12px}.post-detail-delete-btn{margin-left:auto;padding:6px 8px;border:none;background:transparent;cursor:pointer;border-radius:8px;color:var(--wx-text-secondary)}.post-detail-delete-btn:hover:not(:disabled){background:#ee0a2414;color:var(--wx-red, #ee0a24)}.post-detail-delete-btn:disabled{opacity:.6;cursor:not-allowed}.post-detail-delete-icon{font-size:18px;line-height:1}.post-detail-author-info{display:flex;flex-direction:column;gap:2px}.post-detail-time{font-size:12px;font-weight:400;color:var(--wx-text-secondary)}.post-detail-avatar-wrap{flex-shrink:0;width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid var(--wx-border)}.post-detail-avatar{width:100%;height:100%;object-fit:cover}.post-detail-avatar-default{object-fit:contain;padding:6px;background:var(--wx-bar-bg)}.post-detail-username{font-size:15px;font-weight:600;color:var(--wx-text)}.post-detail-content{margin:0 0 12px;font-size:15px;line-height:1.52;color:var(--wx-text);white-space:pre-wrap;word-break:break-word}.post-detail-images{display:flex;flex-wrap:wrap;gap:8px}.post-detail-image-wrap{padding:0;border:none;background:none;cursor:pointer;display:block;border-radius:8px;overflow:hidden;margin:0 0 12px}.post-detail-image{max-width:100%;width:auto;max-height:280px;object-fit:contain;border-radius:8px;background:var(--wx-bar-bg)}.post-detail-actions{display:flex;gap:12px;align-items:center}.post-detail-like{padding:6px 12px;border:none;border-radius:8px;background:#0000000f;font-size:14px;color:var(--wx-text-secondary);cursor:pointer;transition:background .2s,color .2s}.post-detail-like:hover{background:#0000001a}.post-detail-like.is-liked{background:#07c16026;color:var(--wx-green)}.post-detail-comments-title{margin:0 0 12px;font-size:15px;font-weight:600;color:var(--wx-text)}.post-detail-comment-list{list-style:none;margin:0;padding:0}.post-detail-comment-wrap{margin-bottom:12px}.post-detail-comment-wrap:last-child{margin-bottom:0}.post-detail-comment{background:#ffffffeb;border-radius:10px;padding:12px;margin-bottom:6px;box-shadow:0 1px 2px #0000000f}.post-detail-reply-list{list-style:none;padding:0 0 0 20px;border-left:2px solid var(--wx-border);margin:0 0 0 12px}.post-detail-comment-reply{margin-bottom:6px;max-width:100%}.post-detail-comment-reply:last-child{margin-bottom:0}.post-detail-comment-content{margin:0 0 8px;font-size:14px;line-height:1.45;color:var(--wx-text)}.post-detail-reply-label{color:var(--wx-text-secondary);margin-right:4px}.post-detail-comment-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--wx-text-secondary)}.post-detail-comment-delete{margin-left:auto;padding:0;border:none;background:none;cursor:pointer;color:var(--wx-text-secondary);font-size:14px}.post-detail-comment-delete:hover{color:var(--wx-red, #ee0a24)}.post-detail-reply-delete{padding:0;border:none;background:none;cursor:pointer;font-size:12px;color:var(--wx-text-secondary)}.post-detail-reply-delete:hover{text-decoration:underline;color:var(--wx-red, #ee0a24)}.post-detail-reply-btn{padding:0;border:none;background:none;color:var(--wx-green);cursor:pointer;font-size:12px}.post-detail-reply-btn:hover{text-decoration:underline}.post-detail-form{position:fixed;left:0;right:0;bottom:calc(50px + var(--safe-bottom, 0px));padding:8px 12px;padding-bottom:calc(8px + var(--safe-bottom, 0px));background:var(--wx-bar-bg);border-top:1px solid var(--wx-border);z-index:50}.post-detail-replying{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:12px;color:var(--wx-text-secondary)}.post-detail-replying button{padding:2px 8px;border:none;background:none;color:var(--wx-green);cursor:pointer}.post-detail-form-row{display:flex;gap:8px;align-items:center}.post-detail-input{flex:1;padding:10px 12px;border:1px solid var(--wx-border);border-radius:8px;font-size:14px;background:#fff;color:var(--wx-text)}.post-detail-input::placeholder{color:var(--wx-text-secondary)}.post-detail-send{padding:10px 16px;border:none;border-radius:8px;background:var(--wx-green);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.post-detail-send:disabled{background:var(--wx-text-secondary);cursor:not-allowed;opacity:.7}.about-team-page{min-height:100%;padding:12px 16px 24px;background:transparent}.about-team-card{padding:18px 16px}.about-team-section+.about-team-section{margin-top:16px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06)}.about-team-title{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--wx-text)}.about-team-list{margin:0}.about-team-role{margin:0 0 4px;font-size:12px;color:var(--wx-text-secondary);font-weight:500}.about-team-name{margin:0 0 6px;font-size:15px;font-weight:600;color:var(--wx-text)}.about-team-subtitle{margin:0 0 6px;font-size:14px;font-weight:700;color:var(--wx-text)}.about-team-tags{margin:0;font-size:13px;color:var(--wx-text-secondary)}.about-thanks-intro-card{margin-bottom:16px}.about-thanks-intro{margin:0;font-size:14px;line-height:1.5;color:var(--wx-text)}.about-thanks-page-title{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--wx-text);padding:0 4px}.about-thanks-no-order{display:block;margin-top:4px;font-size:12px;font-weight:500;color:var(--wx-text-secondary)}.about-thanks-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.about-thanks-cards li{margin:0}.about-thanks-en{margin:0;font-size:13px;font-weight:500;color:var(--wx-text-secondary)}.about-editor-page{min-height:100%;padding:12px 16px 24px;background:transparent}.about-editor-card{padding:18px 16px}.about-editor-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.about-editor-title{margin:0;font-size:16px;font-weight:700;color:var(--wx-text, #111)}.about-editor-date{font-size:12px;color:var(--wx-text-secondary, #888)}.about-editor-section{margin:0 0 8px}.about-editor-p{margin:0 0 8px;font-size:14px;line-height:1.6;color:var(--wx-text, #111)}.about-editor-quote{margin-top:1em;margin-bottom:1em}.about-editor-sign{margin:4px 0 0;font-size:13px;line-height:1.5;text-align:right;color:var(--wx-text-secondary, #666)}.about-editor-divider{margin:8px 0 10px;border:0;border-top:1px solid rgba(0,0,0,.06)}.about-alg-page{min-height:100%;padding:12px 16px 24px;background:transparent}.about-alg-card{padding:18px 16px}.about-alg-title{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--wx-text, #111)}.about-alg-section{margin:0}.about-alg-h3{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--wx-text, #111)}.about-alg-h4{margin:14px 0 8px;font-size:13px;font-weight:700;color:var(--wx-text, #111)}.about-alg-p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--wx-text, #111)}.about-alg-ul{margin:0 0 10px;padding-left:18px;font-size:14px;line-height:1.6;color:var(--wx-text, #111)}.about-alg-ul-nested{margin-top:6px}.about-alg-formula{margin:8px 0;padding:10px 12px;border-radius:10px;background:#0000000a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;color:var(--wx-text, #111);overflow-x:auto}.about-alg-table-wrap{width:100%;overflow-x:auto;margin:8px 0 10px}.about-alg-table{width:100%;border-collapse:collapse;min-width:520px}.about-alg-table th,.about-alg-table td{border:1px solid rgba(0,0,0,.08);padding:10px;vertical-align:top;font-size:13px;line-height:1.5;color:var(--wx-text, #111)}.about-alg-table th{background:#00000008;font-weight:700}.about-alg-hr{margin:16px 0;border:0;border-top:1px solid rgba(0,0,0,.08)}.about-alg-note{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--wx-text-secondary, #888)}.myposts-page{padding:12px 16px 24px;min-height:100%;background:transparent}.myposts-loading,.myposts-error{padding:24px 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.myposts-error{color:var(--wx-red, #ee0a24)}.myposts-empty{text-align:center;color:var(--wx-text-secondary);font-size:14px;margin:32px 16px}.myposts-list{list-style:none;margin:0;padding:0}.myposts-list li{margin-bottom:12px}.myposts-list .post-card{margin-bottom:0}.review-card-wrap{display:block;text-decoration:none;color:inherit;margin-bottom:12px}.review-card{padding:12px 14px}.review-card-main{display:flex;gap:12px;align-items:flex-start}.review-card-image-wrap{flex-shrink:0;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--wx-bg-secondary)}.review-card-image{width:100%;height:100%;object-fit:cover}.review-card-body{flex:1;min-width:0}.review-card-shop{margin:0 0 2px;font-size:12px;color:var(--wx-text-secondary)}.review-card-product{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--wx-text)}.review-card-rating{margin:0 0 6px;font-size:13px;color:var(--wx-green)}.review-card-content{margin:0 0 4px;font-size:13px;color:var(--wx-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.review-card-date{margin:0;font-size:11px;color:var(--wx-text-tertiary)}.myreviews-page{padding:12px 16px 24px;min-height:100%;background:transparent}.myreviews-intro{margin:0 0 12px;font-size:14px;color:var(--wx-text-secondary)}.myreviews-list{list-style:none;margin:0;padding:0}.myreviews-list li{margin:0}.myreviews-loading,.myreviews-error,.myreviews-empty{text-align:center;padding:24px 16px;margin:0;font-size:14px;color:var(--wx-text-secondary)}.myreviews-error{color:var(--wx-red, #ee0a24)}.profile-edit-page{padding:16px;min-height:100%;background:transparent}.profile-edit-form{background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f}.profile-edit-field{margin-bottom:20px}.profile-edit-field label{display:block;font-size:14px;font-weight:500;color:var(--wx-text);margin-bottom:8px}.profile-edit-avatar-row{display:flex;align-items:center;gap:16px}.profile-edit-avatar-wrap{flex-shrink:0;width:72px;height:72px;border-radius:50%;overflow:hidden;border:2px solid var(--wx-border);cursor:pointer;display:block}.profile-edit-avatar-wrap:hover{border-color:var(--wx-green)}.profile-edit-avatar-input{position:absolute;width:0;height:0;opacity:0}.profile-edit-avatar{width:100%;height:100%;object-fit:cover}.profile-edit-avatar-default{object-fit:contain;padding:10px;background:var(--wx-bar-bg)}.profile-edit-avatar-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--wx-text-secondary);background:var(--wx-bar-bg)}.profile-edit-avatar-hint{font-size:13px;color:var(--wx-text-secondary)}.profile-edit-field input[type=text]{width:100%;padding:12px 14px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px}.profile-edit-field input:focus{outline:none;border-color:var(--wx-green)}.profile-edit-message{margin:0 0 12px;padding:10px 12px;border-radius:8px;font-size:13px}.profile-edit-message-success{background:#07c1601f;color:var(--wx-green-dark)}.profile-edit-message-error{background:#ff00000f;color:#c00}.profile-edit-btn{width:100%;padding:12px;border:none;border-radius:8px;background:var(--wx-green);color:#fff;font-size:16px;font-weight:500;cursor:pointer}.profile-edit-btn:hover{background:var(--wx-green-dark)}.mailbox-page{padding:16px;min-height:100%;background:transparent}.mailbox-loading,.mailbox-error,.mailbox-empty{margin:24px 0 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.mailbox-error{color:var(--wx-red, #ee0a24)}.mailbox-intro{margin:0 0 16px;font-size:13px;color:var(--wx-text-secondary);line-height:1.45}.mailbox-item-read{opacity:.85}.mailbox-list{list-style:none;margin:0;padding:0}.mailbox-item{margin-bottom:8px;border-radius:12px;overflow:hidden;background:#ffffffeb;box-shadow:0 1px 3px #0000000f}.mailbox-item-link{display:flex;align-items:flex-start;gap:12px;padding:14px;color:inherit;text-decoration:none}.mailbox-item-link:hover{background:#00000005}.mailbox-item-icon{font-size:20px;flex-shrink:0}.mailbox-item-body{flex:1;min-width:0}.mailbox-item-title{margin:0 0 4px;font-size:15px;font-weight:500;color:var(--wx-text)}.mailbox-item-preview{margin:0 0 4px;font-size:13px;color:var(--wx-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mailbox-item-comment{margin:0 0 4px;font-size:13px;color:var(--wx-green);font-style:italic;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.mailbox-item-time{font-size:12px;color:var(--wx-text-secondary)}.card{display:block;background:#ffffffeb;border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #00000014;border:1px solid rgba(255,255,255,.5);text-decoration:none;color:inherit;transition:background .2s}.card:hover{background:var(--wx-bar-bg)}.card:focus-visible{outline:2px solid var(--wx-green);outline-offset:2px}.merchant-card-wrap{display:block;text-decoration:none;color:inherit}.merchant-card{display:flex;align-items:center;gap:14px;min-height:72px}.merchant-card-logo-wrap{flex-shrink:0;width:48px;height:48px;border-radius:10px;overflow:hidden;border:1px solid var(--wx-border);background:var(--wx-bar-bg)}.merchant-card-logo{width:100%;height:100%;object-fit:cover}.merchant-card-logo-default{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--wx-text-secondary);object-fit:none}.merchant-card-body{flex:1;min-width:0}.merchant-card-row{display:flex;align-items:center;gap:8px;margin-bottom:2px}.merchant-card-name{font-size:16px;font-weight:600;color:var(--wx-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant-card-status{flex-shrink:0;font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500}.merchant-card-status-open{background:#07c1601f;color:var(--wx-green)}.merchant-card-status-closed{background:var(--wx-bar-bg);color:var(--wx-text-secondary)}.merchant-card-rating{display:inline-block;font-size:12px;color:#fa8c16;margin-bottom:2px}.merchant-card-desc{margin:0;font-size:12px;color:var(--wx-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.merchant-card-meta{margin:4px 0 0;font-size:11px;color:var(--wx-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skeleton-card{display:flex;align-items:center;gap:14px;min-height:72px}.skeleton-card-logo{flex-shrink:0;width:48px;height:48px;border-radius:10px}.skeleton-card-body{flex:1;min-width:0}.skeleton-card-title{width:55%;height:16px;margin-bottom:8px;border-radius:4px}.skeleton-card-desc{width:85%;height:12px;border-radius:4px}.area-card-wrap{display:block;text-decoration:none;color:inherit}.area-card-wrap .area-card{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:4px}.area-card-name{font-size:17px;font-weight:600;color:var(--wx-text);letter-spacing:.02em}.area-card-hint{font-size:12px;color:var(--wx-text-secondary)}.merchant-list-page{min-height:100%;padding:12px 16px 24px;background:transparent}.merchant-list-title{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--wx-text)}.merchant-list-list{list-style:none;margin:0;padding:0}.merchant-list-list li{margin:0}.merchant-list-loading,.merchant-list-error{padding:24px 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.merchant-list-error{color:var(--wx-red, #ee0a24)}.merchant-list-empty{margin:24px 0 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.merchant-header{display:flex;align-items:center;gap:16px;padding:16px;margin-bottom:16px;background:#ffffffeb;border-radius:12px;border:1px solid rgba(255,255,255,.5);box-shadow:0 1px 3px #00000014}.merchant-header-logo-wrap{flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;border:1px solid var(--wx-border);background:var(--wx-bar-bg)}.merchant-header-logo{width:100%;height:100%;object-fit:cover}.merchant-header-logo-default{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:var(--wx-text-secondary);object-fit:none}.merchant-header-body{flex:1;min-width:0}.merchant-header-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.merchant-header-name{margin:0;font-size:18px;font-weight:600;color:var(--wx-text);line-height:1.3;flex:1;min-width:0}.merchant-header-status{flex-shrink:0;font-size:12px;padding:2px 8px;border-radius:4px;font-weight:500}.merchant-header-status-open{background:#07c1601f;color:var(--wx-green)}.merchant-header-status-closed{background:var(--wx-bar-bg);color:var(--wx-text-secondary)}.merchant-header-rating{margin:0 0 4px;font-size:13px;color:#fa8c16}.merchant-header-desc{margin:0 0 4px;font-size:13px;color:var(--wx-text-secondary);line-height:1.4}.merchant-header-address,.merchant-header-hours{margin:0 0 2px;font-size:12px;color:var(--wx-text-secondary);line-height:1.4}.category-sidebar{flex-shrink:0;width:88px;align-self:flex-start;position:sticky;top:0;max-height:100vh;overflow-y:auto;background:#fff9;border-right:1px solid rgba(0,0,0,.06)}.category-sidebar-list{list-style:none;margin:0;padding:8px 0}.category-sidebar-list li{margin:0}.category-sidebar-item{display:block;width:100%;padding:10px 8px;border:none;border-left:3px solid transparent;background:transparent;text-align:center;font-size:13px;color:var(--wx-text-secondary);cursor:pointer;transition:background .2s,color .2s}.category-sidebar-item:hover{background:#0000000a;color:var(--wx-text)}.category-sidebar-item.active{background:#07c16014;color:var(--wx-green);border-left-color:var(--wx-green);font-weight:500}.food-card-wrap{display:block;text-decoration:none;color:inherit}.food-card{display:flex;align-items:center;gap:14px;min-height:88px}.food-card-image-wrap{flex-shrink:0;width:80px;height:80px;border-radius:10px;overflow:hidden;border:1px solid var(--wx-border);background:var(--wx-bar-bg)}.food-card-image-wrap-clickable{padding:0;border:1px solid var(--wx-border);background:var(--wx-bar-bg);cursor:pointer;display:block}.food-card-image{width:100%;height:100%;object-fit:cover}.food-card-image-default{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--wx-text-secondary);object-fit:none}.food-card-body{flex:1;min-width:0}.food-card-name{font-size:16px;font-weight:600;color:var(--wx-text);display:block;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-card-price-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}.food-card-price{font-size:15px;font-weight:600;color:var(--wx-green)}.food-card-rating{font-size:14px;font-weight:500;color:#fa8c16}.food-card-desc{margin:0;font-size:12px;color:var(--wx-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.food-card-actions{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap}.food-card-action{font-size:13px;padding:4px 10px;border-radius:6px;border:none;cursor:pointer;text-decoration:none;background:transparent;color:inherit;font-family:inherit}.food-card-action-edit{color:var(--wx-green);border:1px solid var(--wx-green)}.food-card-action-edit:hover{background:#07c16014}.food-card-action-delete{color:#e64340;border:1px solid #e64340}.food-card-action-delete:hover{background:#e6434014}.food-card-wrap-merchant{cursor:default}.category-section{margin-bottom:20px}.category-section-title{margin:0 0 10px;padding:0 4px;font-size:15px;font-weight:600;color:var(--wx-text)}.category-section-empty{margin:0 0 8px;padding:8px 4px;font-size:13px;color:var(--wx-text-tertiary)}.category-section-list{list-style:none;margin:0;padding:0}.category-section-list li{margin:0 0 12px}.skeleton-food{display:flex;align-items:center;gap:14px;min-height:88px}.skeleton-food-image{flex-shrink:0;width:80px;height:80px;border-radius:10px}.skeleton-food-body{flex:1;min-width:0}.skeleton-food-name{width:70%;height:16px;margin-bottom:8px;border-radius:4px}.skeleton-food-price{width:90px;height:15px;border-radius:4px}.food-list-page{display:flex;flex-direction:column;height:calc(100vh - 94px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));min-height:0;padding:0 0 24px;background:transparent}.food-list-layout{display:flex;flex:1;min-height:0;overflow:hidden}.food-list-sidebar-skeleton{flex-shrink:0;width:88px;background:#fff9;border-right:1px solid rgba(0,0,0,.06)}.food-list-main{flex:1;min-width:0;padding:12px 16px 0;overflow-y:auto}.food-list-loading,.food-list-error{padding:24px 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.food-list-error{color:var(--wx-red, #ee0a24)}.food-list-empty{margin:24px 16px 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.food-detail-view{background:#ffffffeb;border-radius:12px;overflow:hidden;margin-bottom:16px;border:1px solid rgba(255,255,255,.5);box-shadow:0 1px 3px #00000014}.food-detail-view-image-wrap{width:100%;aspect-ratio:16 / 10;background:var(--wx-bar-bg);overflow:hidden}.food-detail-view-image-wrap-clickable{cursor:pointer}.food-detail-view-image{width:100%;height:100%;object-fit:cover}.food-detail-view-image-default{display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:500;color:var(--wx-text-secondary);object-fit:none}.food-detail-view-body{padding:16px}.food-detail-view-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.food-detail-view-name{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--wx-text);line-height:1.3}.food-detail-view-delete{padding:0;border:none;background:none;cursor:pointer;font-size:18px;color:var(--wx-text-secondary)}.food-detail-view-delete:hover{color:var(--wx-red, #ee0a24)}.food-detail-view-price-row{margin:0 0 12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.food-detail-view-price{font-size:18px;font-weight:600;color:var(--wx-green)}.food-detail-view-rating{font-size:16px;font-weight:500;color:#fa8c16}.food-detail-view-desc{margin:0;font-size:14px;color:var(--wx-text-secondary);line-height:1.5}.food-detail-page{min-height:100%;padding:12px 16px 24px;background:transparent}.food-detail-loading,.food-detail-error{margin:24px 0 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.food-detail-error{color:var(--wx-red, #ee0a24)}.food-detail-empty{margin:24px 0 16px;font-size:14px;color:var(--wx-text-secondary);text-align:center}.food-detail-back-btn{display:block;margin:0 auto;padding:10px 24px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px}.food-detail-back-btn:hover{background:#07c16014}.food-detail-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.food-detail-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;font-size:16px;font-weight:500;border-radius:10px;border:none;cursor:pointer;font-family:inherit}.food-detail-btn-review{background:var(--wx-green);color:#fff}.food-detail-btn-review:hover{background:var(--wx-green-dark)}.food-detail-btn-fav{background:#ffffffeb;color:var(--wx-text);border:1px solid var(--wx-border);box-shadow:0 1px 3px #0000000f}.food-detail-btn-fav:hover{background:var(--wx-bar-bg)}.food-detail-btn-fav.is-favorited{border-color:#e64340;color:#e64340}.food-detail-btn-fav.is-favorited:hover{background:#e643400f}.food-detail-btn-fav-icon{font-size:18px;line-height:1}.food-detail-reviews{margin-top:24px;padding-bottom:80px}.food-detail-reviews-title{margin:0 0 12px;font-size:15px;font-weight:600;color:var(--wx-text)}.food-detail-reviews-error{margin:12px 0 0;font-size:14px;color:var(--wx-red, #ee0a24)}.food-detail-reviews-loading,.food-detail-reviews-empty{margin:12px 0 0;font-size:14px;color:var(--wx-text-secondary)}.food-detail-review-list{list-style:none;margin:0;padding:0}.food-detail-review{background:#ffffffeb;border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:0 1px 2px #0000000f}.food-detail-review-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.food-detail-review-user{font-size:14px;font-weight:600;color:var(--wx-text)}.food-detail-review-rating{font-size:12px;padding:2px 8px;border-radius:6px;background:#07c1601f;color:var(--wx-green);font-weight:500}.food-detail-review-content{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--wx-text);white-space:pre-wrap;word-break:break-word}.food-detail-review-images{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.food-detail-review-image-wrap{display:block;width:72px;height:72px;border-radius:8px;overflow:hidden;background:var(--wx-bar-bg)}.food-detail-review-image{width:100%;height:100%;object-fit:cover}.food-detail-review-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--wx-text-secondary)}.food-detail-review-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--wx-text-secondary)}.food-detail-review-delete{margin-left:auto;padding:0;border:none;background:none;cursor:pointer;font-size:14px;color:var(--wx-text-secondary)}.food-detail-review-delete:hover{color:var(--wx-red, #ee0a24)}.food-detail-reply-delete{padding:0;border:none;background:none;cursor:pointer;font-size:12px;color:var(--wx-text-secondary);margin-left:8px}.food-detail-reply-delete:hover{text-decoration:underline;color:var(--wx-red, #ee0a24)}.food-detail-review-like{padding:4px 10px;border:none;border-radius:6px;background:#0000000f;font-size:12px;color:var(--wx-text-secondary);cursor:pointer}.food-detail-review-like:hover{background:#0000001a}.food-detail-review-like.is-liked{background:#07c16026;color:var(--wx-green)}.food-detail-review-reply-btn{padding:0;border:none;background:none;color:var(--wx-green);cursor:pointer;font-size:12px}.food-detail-review-reply-btn:hover{text-decoration:underline}.food-detail-reply-list{list-style:none;margin:10px 0 0 16px;padding:0 0 0 12px;border-left:2px solid var(--wx-border);max-width:calc(100% - 28px)}.food-detail-reply{margin-bottom:8px}.food-detail-reply-content{margin:0 0 4px;font-size:13px;line-height:1.4;color:var(--wx-text)}.food-detail-reply-user{color:var(--wx-text-secondary);font-weight:500}.food-detail-form{position:fixed;left:0;right:0;bottom:calc(50px + var(--safe-bottom, 0px));padding:8px 12px;padding-bottom:calc(8px + var(--safe-bottom, 0px));background:var(--wx-bar-bg);border-top:1px solid var(--wx-border);z-index:50}.food-detail-replying{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:12px;color:var(--wx-text-secondary)}.food-detail-replying button{padding:2px 8px;border:none;background:none;color:var(--wx-green);cursor:pointer}.food-detail-form-row{display:flex;gap:8px;align-items:center}.food-detail-input{flex:1;padding:10px 12px;border:1px solid var(--wx-border);border-radius:8px;font-size:14px;background:#fff;color:var(--wx-text)}.food-detail-input:disabled{background:var(--wx-bar-bg);color:var(--wx-text-secondary)}.food-detail-input::placeholder{color:var(--wx-text-secondary)}.food-detail-send{padding:10px 16px;border:none;border-radius:8px;background:var(--wx-green);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.food-detail-send:disabled{background:var(--wx-text-secondary);cursor:not-allowed;opacity:.7}.food-review-publish-page{padding:16px;min-height:100%;background:transparent}.food-review-publish-loading,.food-review-publish-error{padding:24px 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.food-review-publish-error{color:var(--wx-red, #ee0a24)}.food-review-publish-hint{margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.45;color:var(--wx-text-secondary);background:#ffffffeb;border-radius:8px;border-left:3px solid var(--wx-green)}.food-review-publish-form{display:flex;flex-direction:column;gap:24px;background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f}.food-review-publish-section{display:flex;flex-direction:column;gap:10px}.food-review-publish-label{font-size:14px;font-weight:500;color:var(--wx-text)}.food-review-publish-rating-row{display:flex;flex-wrap:wrap;gap:8px}.food-review-publish-rating-btn{padding:10px 14px;font-size:14px;font-weight:500;border:1px solid var(--wx-border);border-radius:8px;background:#fff;color:var(--wx-text);cursor:pointer;font-family:inherit;transition:border-color .2s,background .2s,color .2s}.food-review-publish-rating-btn:hover{border-color:var(--wx-green);color:var(--wx-green)}.food-review-publish-rating-btn.active{border-color:var(--wx-green);background:#07c1601f;color:var(--wx-green)}.food-review-publish-textarea{width:100%;min-height:120px;padding:12px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;font-family:inherit;resize:vertical;background:#fff}.food-review-publish-textarea::placeholder{color:var(--wx-text-secondary)}.food-review-publish-images{display:flex;flex-wrap:wrap;gap:12px}.food-review-publish-image-wrap{position:relative;width:96px;height:96px;border-radius:8px;overflow:hidden;background:var(--wx-bar-bg)}.food-review-publish-image{width:100%;height:100%;object-fit:cover}.food-review-publish-image-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.food-review-publish-image-add{width:96px;height:96px;border:1px dashed var(--wx-border);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--wx-bar-bg)}.food-review-publish-image-add:hover{border-color:var(--wx-green);color:var(--wx-green)}.food-review-publish-file-input{position:absolute;width:0;height:0;opacity:0}.food-review-publish-image-add-inner{font-size:32px;color:var(--wx-text-secondary)}.food-review-publish-image-add:hover .food-review-publish-image-add-inner{color:var(--wx-green)}.food-review-publish-message{margin:0;font-size:14px;padding:8px 0}.food-review-publish-message-success{color:var(--wx-green)}.food-review-publish-message-error{color:#e64340}.food-review-publish-submit{width:100%;padding:14px;border:none;border-radius:8px;background:var(--wx-green);color:#fff;font-size:16px;font-weight:500;cursor:pointer}.food-review-publish-submit:hover{background:var(--wx-green-dark)}.food-review-publish-empty{margin:24px 0 16px;font-size:14px;color:var(--wx-text-secondary);text-align:center}.food-review-publish-back{display:block;margin:0 auto;padding:10px 24px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.food-review-publish-back:hover{background:#07c16014}.store-form{background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:20px}.store-form-field label{display:block;font-size:14px;font-weight:500;color:var(--wx-text);margin-bottom:8px}.store-form-input,.store-form-select,.store-form-textarea{width:100%;padding:12px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;font-family:inherit;background:#fff}.store-form-input::placeholder,.store-form-textarea::placeholder{color:var(--wx-text-secondary)}.store-form-textarea{min-height:80px;resize:vertical}.store-form-logo-row{display:flex;align-items:center;gap:12px}.store-form-logo-wrap{flex-shrink:0;width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--wx-border);cursor:pointer;display:block;background:var(--wx-bar-bg)}.store-form-logo-wrap:hover{border-color:var(--wx-green)}.store-form-file-input{position:absolute;width:0;height:0;opacity:0}.store-form-logo{width:100%;height:100%;object-fit:cover}.store-form-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--wx-text-secondary)}.store-form-logo-hint{font-size:13px;color:var(--wx-text-secondary)}.store-form-message{margin:0;font-size:14px;padding:8px 0}.store-form-message-success{color:var(--wx-green)}.store-form-message-error{color:#e64340}.store-form-actions{display:flex;flex-direction:column;gap:12px;margin-top:8px}.store-form-btn{padding:12px 20px;font-size:16px;font-weight:500;border-radius:8px;border:none;cursor:pointer}.store-form-btn-primary{background:var(--wx-green);color:#fff}.store-form-btn-primary:hover{background:var(--wx-green-dark)}.store-form-btn-secondary{background:transparent;color:var(--wx-text-secondary);border:1px solid var(--wx-border)}.store-form-btn-secondary:hover{background:var(--wx-bar-bg)}.store-create-page{min-height:100%;padding:12px 16px 24px;background:transparent}.store-create-error{margin:0 0 12px;padding:10px 12px;font-size:14px;color:var(--wx-red, #ee0a24);background:#ee0a2414;border-radius:8px}.store-create-loading{margin-top:12px;font-size:14px;color:var(--wx-text-secondary)}.food-manage-page{min-height:100%;padding:12px 16px 24px;background:transparent}.food-manage-merchant{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--wx-text)}.food-manage-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.food-manage-add{display:inline-block;padding:10px 20px;font-size:15px;font-weight:500;color:#fff;background:var(--wx-green);border-radius:8px;text-decoration:none}.food-manage-add:hover{background:var(--wx-green-dark)}.food-manage-edit-shop{display:inline-block;padding:10px 20px;font-size:15px;font-weight:500;color:var(--wx-green);background:#fff;border:1px solid var(--wx-green);border-radius:8px;text-decoration:none}.food-manage-edit-shop:hover{background:#07c16014}.food-manage-add-category{padding:10px 20px;font-size:15px;font-weight:500;color:var(--wx-green);background:#fff;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.food-manage-add-category:hover{background:#07c16014}.food-manage-category-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;padding:12px;background:#07c1600f;border-radius:8px;border:1px solid var(--wx-border)}.food-manage-category-input{flex:1;min-width:140px;padding:8px 12px;font-size:14px;border:1px solid var(--wx-border);border-radius:6px}.food-manage-category-btn{padding:8px 16px;font-size:14px;font-weight:500;color:#fff;background:var(--wx-green);border:none;border-radius:6px;cursor:pointer}.food-manage-category-btn:hover:not(:disabled){background:var(--wx-green-dark)}.food-manage-category-btn:disabled{opacity:.6;cursor:not-allowed}.food-manage-category-cancel{padding:8px 12px;font-size:14px;color:var(--wx-text-secondary);background:transparent;border:none;cursor:pointer}.food-manage-category-cancel:hover{text-decoration:underline}.food-manage-list{list-style:none;margin:0;padding:0}.food-manage-list li{margin:0}.food-manage-loading,.food-manage-error{margin:24px 0 0;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.food-manage-error{color:var(--wx-red, #ee0a24)}.food-manage-back{display:block;margin:16px auto 0;padding:10px 24px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.food-manage-empty{margin:24px 0 0;font-size:14px;color:var(--wx-text-secondary);text-align:center}.food-form{background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:20px}.food-form-field label{display:block;font-size:14px;font-weight:500;color:var(--wx-text);margin-bottom:8px}.food-form-input,.food-form-textarea{width:100%;padding:12px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;font-family:inherit;background:#fff}.food-form-input::placeholder,.food-form-textarea::placeholder{color:var(--wx-text-secondary)}.food-form-select{cursor:pointer;appearance:auto}.food-form-category-hint{margin:0;padding:10px 12px;font-size:13px;color:var(--wx-text-secondary);background:#07c1600f;border-radius:8px;border-left:3px solid var(--wx-green)}.food-form-textarea{min-height:80px;resize:vertical}.food-form-image-row{display:flex;align-items:center;gap:12px}.food-form-image-wrap{flex-shrink:0;width:80px;height:80px;border-radius:10px;overflow:hidden;border:1px solid var(--wx-border);cursor:pointer;display:block;background:var(--wx-bar-bg)}.food-form-image-wrap:hover{border-color:var(--wx-green)}.food-form-file-input{position:absolute;width:0;height:0;opacity:0}.food-form-image{width:100%;height:100%;object-fit:cover}.food-form-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--wx-text-secondary)}.food-form-image-hint{font-size:13px;color:var(--wx-text-secondary)}.food-form-message{margin:0;font-size:14px;padding:8px 0}.food-form-message-success{color:var(--wx-green)}.food-form-message-error{color:#e64340}.food-form-actions{display:flex;flex-direction:column;gap:12px;margin-top:8px}.food-form-btn{padding:12px 20px;font-size:16px;font-weight:500;border-radius:8px;border:none;cursor:pointer}.food-form-btn-primary{background:var(--wx-green);color:#fff}.food-form-btn-primary:hover{background:var(--wx-green-dark)}.food-form-btn-secondary{background:transparent;color:var(--wx-text-secondary);border:1px solid var(--wx-border)}.food-form-btn-secondary:hover{background:var(--wx-bar-bg)}.food-create-page{min-height:100%;padding:12px 16px 24px;background:transparent}.food-create-loading,.food-create-error{margin:0 0 12px;font-size:14px;color:var(--wx-text-secondary)}.food-create-error{color:var(--wx-red, #ee0a24)}.food-create-back{display:block;margin-top:12px;padding:10px 24px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.merchant-food-detail-page{min-height:100%;padding:12px 16px 24px;background:transparent}.merchant-food-detail-loading,.merchant-food-detail-error{margin:24px 0 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.merchant-food-detail-error{color:var(--wx-red, #ee0a24)}.merchant-food-detail-empty{margin:24px 0 16px;font-size:14px;color:var(--wx-text-secondary);text-align:center}.merchant-food-detail-btn-delete{background:transparent;color:var(--wx-red, #ee0a24);border:1px solid var(--wx-red, #ee0a24)}.merchant-food-detail-btn-delete:hover{background:#ee0a2414}.merchant-food-detail-back{display:block;margin:0 auto;padding:10px 24px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.merchant-food-detail-back:hover{background:#07c16014}.merchant-food-detail-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.merchant-food-detail-btn{padding:12px 20px;font-size:15px;font-weight:500;border-radius:8px;border:none;cursor:pointer;font-family:inherit}.merchant-food-detail-btn-edit{background:var(--wx-green);color:#fff}.merchant-food-detail-btn-edit:hover{background:var(--wx-green-dark)}.merchant-food-detail-btn-back{background:transparent;color:var(--wx-text-secondary);border:1px solid var(--wx-border)}.merchant-food-detail-btn-back:hover{background:var(--wx-bar-bg)}.merchant-shop-edit-page{min-height:100%;padding:16px;background:transparent}.merchant-shop-edit-title{margin:0 0 20px;font-size:18px;font-weight:600;color:var(--wx-text)}.merchant-shop-edit-loading,.merchant-shop-edit-error{margin:24px 0;font-size:14px;color:var(--wx-text-secondary)}.merchant-shop-edit-error{color:var(--wx-red, #ee0a24)}.merchant-shop-edit-back{display:block;margin-top:12px;padding:10px 20px;font-size:15px;color:var(--wx-green);background:transparent;border:1px solid var(--wx-green);border-radius:8px;cursor:pointer}.merchant-shop-edit-form{background:#ffffffeb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:20px}.merchant-shop-edit-field label{display:block;font-size:14px;font-weight:500;color:var(--wx-text);margin-bottom:8px}.merchant-shop-edit-logo-row{display:flex;align-items:center;gap:12px}.merchant-shop-edit-logo-wrap{flex-shrink:0;width:80px;height:80px;border-radius:10px;overflow:hidden;border:1px solid var(--wx-border);cursor:pointer;display:block;background:var(--wx-bar-bg)}.merchant-shop-edit-file{position:absolute;width:0;height:0;opacity:0}.merchant-shop-edit-logo{width:100%;height:100%;object-fit:cover}.merchant-shop-edit-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--wx-text-secondary)}.merchant-shop-edit-hint{font-size:12px;color:var(--wx-text-secondary)}.merchant-shop-edit-input{width:100%;padding:12px;border:1px solid var(--wx-border);border-radius:8px;font-size:15px;background:#fff}.merchant-shop-edit-input:focus{outline:none;border-color:var(--wx-green)}.merchant-shop-edit-actions{display:flex;gap:12px;margin-top:8px}.merchant-shop-edit-btn{padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;border:none}.merchant-shop-edit-btn:disabled{opacity:.7;cursor:not-allowed}.merchant-shop-edit-btn-primary{background:var(--wx-green);color:#fff}.merchant-shop-edit-btn-primary:hover:not(:disabled){background:var(--wx-green-dark)}.merchant-shop-edit-btn-secondary{background:transparent;color:var(--wx-text-secondary);border:1px solid var(--wx-border)}.merchant-shop-edit-btn-secondary:hover{background:var(--wx-bar-bg)}.rankings-page{min-height:100%;padding:12px 16px 24px;background:transparent}.rankings-loading,.rankings-error{padding:24px 16px;font-size:14px;text-align:center;color:var(--wx-text-secondary)}.rankings-error{color:var(--wx-red, #ee0a24)}.rankings-intro{margin:0 0 16px;font-size:12px;color:var(--wx-text-secondary)}.rankings-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.rankings-list li{margin:0}.rankings-section-card{padding:14px 16px}.rankings-section-header{margin-bottom:12px}.rankings-section-title{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--wx-text)}.rankings-section-title-en{margin-left:6px;font-size:12px;font-weight:400;color:var(--wx-text-secondary)}.rankings-section-empty{margin:12px 0 0;font-size:13px;color:var(--wx-text-secondary);text-align:center}.rankings-section-desc{margin:0;font-size:12px;color:var(--wx-text-secondary)}.rankings-section-content{display:flex;flex-direction:column;gap:6px}.rankings-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit;transition:background .2s}.rankings-row:hover{background:var(--wx-bg-secondary)}.rankings-row-static{cursor:default}.rankings-row-static:hover{background:transparent}.rankings-rank{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;background:var(--wx-green);border-radius:50%}.rankings-name{flex:1;font-size:14px;font-weight:500;color:var(--wx-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rankings-meta{flex-shrink:0;font-size:12px;color:var(--wx-text-secondary)}.page-placeholder{padding:24px 16px;margin:16px;text-align:center;color:var(--wx-text);font-size:15px;background:#ffffffeb;border-radius:12px;box-shadow:0 1px 3px #0000000f}.page-placeholder p{margin:0 0 8px}.page-hint{font-size:13px;color:var(--wx-text-secondary);opacity:.9}.splash-screen{position:fixed;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:999;opacity:1;transition:opacity .3s ease-out}.splash-screen--fade-out{opacity:0;pointer-events:none}.splash-screen-video{max-width:70vw;max-height:70vh;border-radius:12px}.install-hint-backdrop{position:fixed;inset:0;z-index:998;background:#00000040;display:flex;align-items:flex-end;justify-content:center;padding:0 16px 24px}.install-hint-card{width:100%;max-width:420px;background:#fffffffa;border-radius:16px;padding:16px 16px 12px;box-shadow:0 8px 30px #00000026}.install-hint-title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--wx-text, #111)}.install-hint-text{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--wx-text-secondary, #666)}.install-hint-actions{display:flex;justify-content:flex-end;gap:8px}.install-hint-btn{padding:8px 14px;font-size:13px;border-radius:999px;border:none;cursor:pointer}.install-hint-btn-secondary{background:#0000000a;color:var(--wx-text-secondary, #666)}.install-hint-btn-primary{background:var(--wx-green, #07c160);color:#fff}.state-loading,.state-error,.state-empty{padding:24px 16px;font-size:14px;text-align:center;line-height:1.5;color:var(--wx-text-secondary)}.state-error{color:var(--wx-red, #ee0a24)}.state-empty{color:var(--wx-text-secondary)}.state-inline-error{margin:0 0 12px;padding:10px 12px;font-size:13px;color:var(--wx-red, #ee0a24);background:#ee0a2414;border-radius:8px}.pressable{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:transform 80ms ease-out,box-shadow 80ms ease-out!important}.pressable:active{transform:scale(var(--pressable-scale, .96));box-shadow:var(--pressable-shadow-active)}@media(prefers-reduced-motion:reduce){.pressable{transition:none!important}}
