:root{--nut-icon-height:16px;--nut-icon-width:16px;--nut-icon-line-height:16px;--animate-duration:1s;--animate-delay:0s}page{--nut-icon-height:20px;--nut-icon-width:20px;--nut-icon-line-height:20px;--animate-duration:1s;--animate-delay:0s}.nut-icon{display:inline-block;font-size:var(--nut-icon-width);height:var(--nut-icon-height);line-height:var(--nut-icon-line-height);position:relative;text-align:right;width:var(--nut-icon-width)}.nut-icon:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.nut-icon-img{height:var(--nut-icon-height);object-fit:contain;width:var(--nut-icon-width)}.nut-icon-Loading,.nut-icon-Loading1,.nut-icon-loading,.nut-icon-loading1{animation:rotation 1s linear infinite;display:inline-block}.nut-icon-am-infinite{-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.nut-icon-am-jump{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutJumpOne;animation-name:nutJumpOne;-webkit-animation-timing-function:ease;animation-timing-function:ease}.nut-icon-am-jump.nut-icon-am-infinite{-webkit-animation-name:nutJump;animation-name:nutJump}.nut-icon-am-rotate{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:rotation;animation-name:rotation;-webkit-animation-timing-function:linear;animation-timing-function:linear}.nut-icon-am-rotate.nut-icon-am-infinite{-webkit-animation-direction:normal;animation-direction:normal}.nut-icon-am-blink{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBlink;animation-name:nutBlink;-webkit-animation-timing-function:ease-in-out;animation-timing-function:linear}.nut-icon-am-breathe{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBreathe;animation-name:nutBreathe;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-flash{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutFlash;animation-name:nutFlash;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-bounce{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutBounce;animation-name:nutBounce;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.nut-icon-am-bounce.nut-icon-am-infinite{-webkit-animation-direction:normal;animation-direction:normal}.nut-icon-am-shake{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay);-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-name:nutShake;animation-name:nutShake;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@-webkit-keyframes nutJump{to{transform:scale3d(.8,1,.9) translateY(-10px)}}@keyframes nutJump{to{transform:scale3d(.8,1,.9) translateY(-10px)}}@-webkit-keyframes nutJumpOne{50%{transform:scale3d(.8,1,.9) translateY(-10px)}to{transform:scaleZ(1) translateY(0)}}@keyframes nutJumpOne{50%{transform:scale3d(.8,1,.9) translateY(-10px)}to{transform:scaleZ(1) translateY(0)}}@-webkit-keyframes nutBlink{0%{opacity:0}to{opacity:1}}@keyframes nutBlink{0%{opacity:0}to{opacity:1}}@-webkit-keyframes nutBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes nutBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@-webkit-keyframes nutFlash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes nutFlash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes nutBounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95);-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes nutBounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95);-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@-webkit-keyframes nutShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes nutShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}body,page{--color-primary:#0d9488;--color-primary-hover:#0f766e;--color-primary-pressed:#115e59;--color-primary-light:#ccfbf1;--color-primary-wash:#f0fdfa;--color-accent:#f97316;--color-accent-hover:#ea580c;--color-accent-pressed:#c2410c;--color-accent-light:#fed7aa;--color-accent-wash:#fff7ed;--color-success:#10b981;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-error:#ef4444;--color-error-hover:#dc2626;--color-error-light:#fee2e2;--color-on-accent:#fff;--color-wechat:#07c160;--color-wechat-hover:#06ad56;--color-ink:#1e293b;--color-ink-secondary:#475569;--color-ink-muted:#64748b;--color-ink-placeholder:#94a3b8;--color-bg:#faf9f7;--color-surface:#fff;--color-surface-hover:#f8fafc;--color-surface-raised:#fff;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-divider:#e2e8f0;--font-sans:"PingFang SC","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;--font-serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;--font-mono:"SF Mono","JetBrains Mono","Cascadia Code",Consolas,monospace;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:34px;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.55;--leading-relaxed:1.7;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.04);--shadow-lg:0 8px 24px rgba(0,0,0,.08),0 4px 8px rgba(0,0,0,.04);--shadow-xl:0 12px 36px rgba(0,0,0,.1),0 6px 12px rgba(0,0,0,.05);--shadow-accent:0 2px 8px rgba(249,115,22,.2);--transition-fast:140ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--tab-bar-height:50px;--z-dropdown:100;--z-sticky:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500}page,taro-button-core,taro-canvas-core,taro-form-core,taro-icon-core,taro-image-core,taro-input-core,taro-label-core,taro-map-core,taro-navigator-core,taro-picker-core,taro-rich-text-core,taro-scroll-view-core,taro-swiper-core,taro-swiper-item-core,taro-text-core,taro-textarea-core,taro-video-core,taro-view-core{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);margin:0;padding:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-muted)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-moz-selection{background:var(--color-primary-light);color:var(--color-ink)}::selection{background:var(--color-primary-light);color:var(--color-ink)}#app,page{background:var(--color-bg);min-height:100%}page{color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal)}.app-shell{background:var(--color-bg);min-height:100vh;min-height:100dvh}.app-shell__content{min-height:100vh;min-height:100dvh;width:100%}@media (min-width:768px){.app-shell{padding:var(--space-6)}.app-shell__content{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-inline:auto;max-width:1280px;overflow:hidden}}.masthead{background:var(--color-surface);padding:var(--space-6) var(--space-5) var(--space-5)}.masthead__topbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.masthead__eyebrow{align-items:center;color:var(--color-primary);display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-bold);gap:var(--space-1);letter-spacing:.05em;text-transform:uppercase}.masthead__title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);max-width:720px;overflow-wrap:anywhere}.masthead__user{color:var(--color-ink-secondary);cursor:pointer;font-size:var(--text-sm)}.masthead__login-btn{align-items:center;background:var(--color-primary);border:none;border-radius:var(--radius-full);color:var(--color-on-accent);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-semibold);height:34px;padding:0 var(--space-4);transition:background var(--transition-fast)}.masthead__login-btn:active{background:var(--color-primary-pressed)}@media (min-width:768px){.masthead{padding:var(--space-10) var(--space-8) var(--space-8)}.masthead__title{font-size:var(--text-3xl)}}.btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-semibold);gap:var(--space-2);justify-content:center;line-height:1;min-height:44px;padding:0 var(--space-5);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.btn::after{display:none}.btn:active{transform:scale(.98)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn--primary{background:var(--color-primary);box-shadow:var(--shadow-sm);color:var(--color-on-accent)}.btn--primary:active{background:var(--color-primary-pressed)}.btn--accent{background:var(--color-accent);box-shadow:var(--shadow-sm);color:var(--color-on-accent)}.btn--accent:active{background:var(--color-accent-pressed)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink)}.btn--secondary:active{background:var(--color-surface-hover)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-ink-secondary)}.btn--ghost:active{background:var(--color-surface-hover)}.btn--danger{background:var(--color-error);color:var(--color-on-accent)}.btn--icon{height:44px;min-width:44px;padding:0;width:44px}.field{min-width:0}.field__label{color:var(--color-ink-secondary);display:block;font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.field__input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink);display:block;font-size:var(--text-md);height:46px;line-height:46px;min-width:0;padding:0 var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.field__input::-moz-placeholder{color:var(--color-ink-placeholder)}.field__input::placeholder{color:var(--color-ink-placeholder)}.field__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.field__input:disabled{background:var(--color-border-light);color:var(--color-ink-muted)}.field__textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink);display:block;font-size:var(--text-md);line-height:var(--leading-normal);min-height:104px;min-width:0;padding:var(--space-3);resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.field__textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.field__error{color:var(--color-error);display:block;font-size:var(--text-xs);line-height:1.4;margin-top:var(--space-1)}.state-panel{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-12) var(--space-5);text-align:left}.state-panel__icon{align-items:center;background:var(--color-primary-wash);border-radius:var(--radius-lg);color:var(--color-primary);display:flex;height:48px;justify-content:center;width:48px}.state-panel__icon--warning{background:var(--color-warning-light);color:var(--color-warning)}.state-panel__icon--error{background:var(--color-error-light);color:var(--color-error)}.state-panel__title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-snug);overflow-wrap:anywhere}.state-panel__desc{color:var(--color-ink-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:480px;overflow-wrap:anywhere}.state-panel__action{margin-top:var(--space-2)}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.skeleton{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-surface) 50%,var(--color-border-light) 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@media (max-width:767px){.btn{min-height:46px;padding:0 var(--space-4)}.field__input{font-size:var(--text-md)}}@media (prefers-reduced-motion:reduce){.btn{transition:none}.state-panel{animation:none}.skeleton{animation:none;background:var(--color-border-light)}}