/* 解耦’s · cocoa / mustard / mist. Art is independent from native text and controls. */
:root{
  --cocoa:#391812;--mustard:#c2b35d;--mist:#cfdeeb;
  --paper:#eaf1f6;--surface:#fffcf6;--ink:var(--cocoa);--green:var(--cocoa);
  --muted:#6b5048;--subtle:var(--muted);--line:#ccd5da;--sage:#dfeaf2;
  --blue:#391812;--ochre:#c2b35d;--selected:#e8dfa9;--radius:14px;
  --ui-font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
html{background:var(--mist);scrollbar-color:#95847c var(--paper);scroll-padding-bottom:150px}
body{font-family:var(--ui-font);font-size:16px;color:var(--ink);line-height:1.6}
button,input,textarea,select{font:inherit;letter-spacing:normal;touch-action:manipulation}
button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }
button{transition:background-color 180ms ease-out,color 180ms ease-out,opacity 180ms ease-out}
button:active,a:active{opacity:.8}
button:disabled{background:#dce2e5!important;color:#705b54!important;opacity:1!important;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--cocoa);outline-offset:4px}
::selection{background:var(--selected);color:var(--cocoa)}
input,textarea{caret-color:var(--cocoa);accent-color:var(--cocoa)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.store-app{background:var(--paper);color:var(--ink);font-family:var(--ui-font);overflow:clip}
.store-app h1,.store-app h2,.store-app h3,.store-app h4,.store-app .price,.store-app strong,.store-app .product-live-total,.store-app .product-total strong,.store-app .checkout-list strong{font-family:var(--ui-font);letter-spacing:normal}
.store-app h1{font-weight:600;line-height:1.4}.store-app h2,.store-app h3{font-weight:600;line-height:1.45}
.brand-header,[data-page=home] .brand-header{position:relative;height:auto;min-height:82px;padding:18px 22px;background:var(--paper);color:var(--cocoa);inset:auto}
.wordmark{display:inline-flex;min-height:44px;align-items:center}
.brand-wordmark{width:124px;height:42px;object-fit:contain;object-position:left center;display:block}
.mini-capsule{min-width:74px;min-height:44px;border:1px solid #9d8d85;border-radius:22px;opacity:1;font-size:17px}
.bottom-nav{background:var(--surface);backdrop-filter:none;border-top:1px solid var(--line);min-height:calc(70px + env(safe-area-inset-bottom));height:auto;padding:5px 12px calc(5px + env(safe-area-inset-bottom))}
.bottom-nav a{min-height:58px;height:auto;color:var(--muted);font-size:.75rem;border-radius:12px;gap:3px;padding:5px 0}
.bottom-nav a[aria-current=page]{background:var(--selected);color:var(--cocoa)}
.bottom-nav a[aria-current=page] span:after{content:'✓';font-size:10px;margin-left:4px}
.bottom-nav svg{stroke-width:1.6;width:23px;height:23px}
.primary,.j-primary,.add-item{background:var(--cocoa);border:1px solid var(--cocoa);color:var(--surface);border-radius:12px;min-height:48px;font-size:.9375rem;font-weight:500}
.secondary,.j-secondary,.small-outline{background:transparent;border:1px solid #9d8d85;color:var(--cocoa);border-radius:12px;min-height:44px;font-size:.875rem}
.icon-button,.text-link,.sheet-back,.home-footer button,.wide-link{min-height:44px}
.section-pad{padding:28px 22px}.section-heading{align-items:center;gap:16px;flex-wrap:wrap}
.section-heading h2{font-size:1.375rem;margin:0}.section-heading>a,.section-heading>span,.section-caption{font-size:.8125rem;color:var(--muted)}
.section-heading>span{max-width:none;text-align:left}
.section-heading>a{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.demo-note,.inline-note,.menu-disclaimer,.site-filing{font-size:.75rem;color:var(--muted)}
.site-filing{padding:16px 20px}.site-filing a{display:inline-block;min-height:44px;padding:10px 0}
/* The illustration ends before the existing shortcuts; it never pushes ordering below the fold. */
.home-scene{height:auto;min-height:0;max-height:none;background:var(--paper);color:var(--cocoa);padding:0 0 8px;overflow:hidden}
.scene-images{height:290px;bottom:auto;position:relative;background:var(--paper)}
.scene-image,.scene-image:first-child,.scene-image:not(:first-child),.scene-image.scene-position-1,.scene-image.scene-position-2{object-fit:cover;object-position:center;transform:none;transition:opacity 200ms ease-out}
.scene-shade{display:none}
.scene-editorial{top:12px;left:24px;right:22px;pointer-events:none}
.scene-copy{transition:opacity 200ms ease-out,transform 200ms ease-out;transform:translateY(4px)}
.scene-copy h1{font-size:2rem;line-height:1.4;margin:0 0 12px;color:var(--cocoa);text-shadow:none}
.scene-copy p{font-size:.8125rem;line-height:1.8;max-width:13em;color:var(--muted);text-shadow:none}
.scene-copy .eyebrow,.section-heading .eyebrow,.order-title .eyebrow,.counter-feature .eyebrow,.hero-copy .eyebrow,.mine-intro .eyebrow,.group-intro>.eyebrow,.game-detail>.eyebrow,.product-description>.eyebrow{display:none}
.scene-bottom{position:relative;bottom:auto;left:auto;right:auto;margin:0 18px}
.scene-controls{height:44px;margin:0 0 10px}
.scene-controls>span{color:var(--muted);font-size:.75rem;letter-spacing:0;opacity:1}
.scene-controls .carousel-dots{gap:6px}
.scene-controls .carousel-dots button{width:44px;height:44px;color:var(--muted);border:0;opacity:1;border-radius:12px}
.scene-controls .carousel-dots button span{font-family:var(--ui-font);font-size:.8125rem}
.scene-controls .carousel-dots button[aria-pressed=true]{background:var(--selected);border:0;color:var(--cocoa)}
.scene-controls .carousel-toggle{min-width:44px;min-height:44px;height:44px;color:var(--cocoa)}
.welcome-panel{background:var(--surface);backdrop-filter:none;border-radius:16px;box-shadow:none}
.quick-actions{padding:16px 6px 12px}.quick-actions a{padding:4px 2px;gap:8px;font-size:.8125rem;min-height:80px}
.quick-actions a+a{border:0}.quick-icon,.quick-actions a:nth-child(n) .quick-icon{background:var(--paper);border-radius:12px;width:44px;height:38px;color:var(--cocoa)}
.quick-actions a:first-child .quick-icon{background:var(--selected)}
.daily-note{padding:14px 0;min-height:56px;font-size:.8125rem;margin:0 16px;width:calc(100% - 32px);border-color:var(--line);gap:10px}
.daily-label{font-family:var(--ui-font);font-style:normal;font-size:.8125rem!important;white-space:nowrap;color:var(--cocoa)}
.daily-note>span:nth-child(2){white-space:normal;color:var(--muted);line-height:1.65}
.event-list{margin-top:16px}.event-row{padding:20px 0;gap:14px}.event-date{color:var(--cocoa);width:48px}.event-date strong{font-size:1.625rem;font-weight:500}.event-date span,.event-date strong small{font-size:.75rem}
.event-content h3{font-size:1rem}.event-content p,.schedule-note{font-size:.75rem;color:var(--muted)}
.arrival{margin:0 22px;padding:24px 0;gap:12px}.arrival h2{font-size:1rem}.arrival p,.home-footer{font-size:.75rem;color:var(--muted)}
/* The counter keeps product names, amounts and controls on untextured surfaces. */
[data-page=order]{background:var(--surface)}
.order-top{background:var(--paper);color:var(--cocoa);position:relative;top:auto;padding:18px 20px 16px;border-bottom:1px solid var(--line)}
.order-title{justify-content:flex-end;margin-bottom:6px}.order-title button{font-size:.8125rem;color:var(--cocoa);min-height:44px;display:flex;gap:5px;align-items:center}
.store-line{gap:12px;align-items:flex-start}.store-line>button:first-child{flex:1;min-width:0;min-height:44px}.store-line h1{font-size:1.1875rem;overflow-wrap:anywhere;line-height:1.5}
.store-line>button:first-child>span,.order-tip{color:var(--muted);font-size:.75rem}
.fulfillment-switch{font-size:.8125rem;min-height:44px;max-width:130px;border:1px solid #9d8d85;border-radius:12px;background:var(--surface);white-space:normal}
.order-tip{margin-top:8px}
.counter-feature{background:var(--paper);border-radius:14px;min-height:128px;margin:16px;width:calc(100% - 32px);padding:16px 12px 16px 18px}
.counter-feature h2{font-size:1.25rem;margin:0 0 6px}.counter-feature p{font-size:.8125rem;color:var(--muted);line-height:1.6}.feature-link{font-size:.8125rem;color:var(--cocoa);margin-top:12px}
.counter-feature .menu-photo{width:106px;height:114px;margin:0 0 0 8px;flex:none;border-radius:12px}
.menu-workspace{grid-template-columns:84px minmax(0,1fr)}
.category-rail{background:var(--paper);position:sticky;top:8px;min-height:280px;padding:8px 0}
.category-rail button{padding:16px 10px;font-size:.8125rem;color:var(--muted);min-height:70px}
.category-rail button small,.menu-group-heading>span{display:none}
.category-rail button[aria-pressed=true]{background:var(--selected);color:var(--cocoa)}
.category-rail button[aria-pressed=true]:before{display:none}.category-rail button[aria-pressed=true]:after{content:'✓';display:block;margin-top:3px;font-size:12px}
.menu-catalog{padding:0 16px 0 14px}.menu-catalog section{scroll-margin-top:12px}.menu-group-heading{padding:14px 0 4px}.menu-group-heading h2{font-size:1rem}
.menu-row{gap:12px;padding:20px 0;align-items:flex-start}.menu-row .menu-photo{width:72px;height:94px;border-radius:12px}.menu-photo{background:#f2efe9;mix-blend-mode:normal}
.product-name-button{min-height:44px;display:flex;align-items:center}.menu-row h3{font-size:1rem;line-height:1.5}.menu-row p{font-size:.75rem;line-height:1.7;color:var(--muted);margin:2px 0 12px}
.menu-product-bottom{flex-wrap:wrap;gap:10px}.price{font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums}
.menu-row .add-item{min-height:44px;font-size:.8125rem;padding:8px 12px;border-radius:10px;height:auto}
.cart-summary{background:var(--cocoa);color:var(--surface);border-radius:14px;min-height:64px;height:auto;padding:12px 16px;bottom:calc(80px + env(safe-area-inset-bottom));box-shadow:0 6px 20px #39181218}
.cart-caption strong{font-family:var(--ui-font);font-size:1.25rem;font-weight:600}.cart-caption small{font-size:.75rem;color:#e8e0d7}.cart-bag b{background:var(--mustard);color:var(--cocoa);font-size:11px;width:20px;height:20px}
.cart-summary .cart-next{font-size:.875rem;gap:6px}.cart-summary.just-added .cart-bag{animation:bag-pop 180ms ease-out}
/* Sheets and selections are the same system as the native mini-program. */
dialog{background:var(--surface);border-radius:20px 20px 0 0;padding:0 22px calc(24px + env(safe-area-inset-bottom));max-height:90dvh;overscroll-behavior:contain;box-shadow:0 -8px 40px #39181220;scroll-padding-bottom:120px}
dialog::backdrop{background:#39181255;backdrop-filter:none}dialog[open]{animation:sheet-lift 200ms ease-out}
.sheet-top{background:var(--surface);min-height:48px}.sheet-handle{background:#b5a79d}#sheet-title{font-family:var(--ui-font);font-size:1.5rem;line-height:1.4;padding-right:16px}
.form-label{font-size:.9375rem;line-height:1.6}.form-label input,.form-label select,.form-label textarea{font-size:1rem;border:1px solid #a49992;border-radius:10px;background:var(--surface);color:var(--cocoa);min-height:48px}
legend{font-size:.9375rem}legend small,.option-pills label small{font-size:.75rem;opacity:1;color:var(--muted)}
.option-pills label span{border-radius:10px!important;border:1px solid #a49992;min-height:48px;font-size:.9375rem;color:var(--cocoa);padding:10px 14px}
.option-pills input:checked+span{background:var(--selected)!important;color:var(--cocoa)!important;border-color:var(--mustard)!important}
.option-pills input:checked+span:before{content:'✓';display:inline-block;margin-right:7px;font-size:12px;font-weight:600}
.option-pills input:disabled+span{background:#e5e9ec;color:var(--muted);opacity:1;border-style:dashed}
.quantity-control button{min-width:44px;min-height:44px;border-radius:10px;border-color:#a49992;background:var(--paper)}
.quantity-control>span,.product-sticky .quantity-control input{font-size:1rem}.product-sticky .quantity-control input{min-width:42px}
.product-detail-visual{background:#eeeff0;height:160px}.product-detail-visual .menu-photo{width:120px;height:154px;border-radius:12px}

.product-description p{font-size:.875rem;color:var(--muted)}
.product-sticky{background:var(--surface);bottom:-24px}.product-live-total{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums}.product-selection{font-size:.8125rem;color:var(--muted)}
.checkout-store span,.checkout-list small{font-size:.8125rem;color:var(--muted)}.checkout-list p{align-items:flex-start;font-size:.9375rem}.checkout-list strong{font-weight:600;font-size:1rem}
.cart-item{flex-wrap:wrap;align-items:flex-start}.cart-item>div:first-child{flex:1;min-width:130px}.cart-item .quantity-control{margin-left:auto}.cart-item h3{font-size:1rem}
.product-total strong{font-weight:600}.product-total span{font-size:.875rem}
.quiet-empty,.j-empty{padding:28px 16px;color:var(--muted);font-size:.875rem}
.quiet-empty:before,.j-empty:before{content:'';display:block;width:72px;height:64px;background:url('assets/art/cup.png') center/contain no-repeat;margin:0 auto 16px}
.quiet-empty h3,.quiet-empty p{color:var(--cocoa)}.quiet-empty span{font-size:.8125rem}
.toast{background:var(--cocoa);color:var(--surface);font-size:.875rem;border-radius:12px;transition:opacity 180ms,transform 180ms;line-height:1.6;max-width:calc(100% - 40px)}
.toast:before{content:'';display:inline-block;width:24px;height:24px;vertical-align:middle;margin-right:10px;background:var(--surface);mask:url('assets/art/cup.png') center/contain no-repeat}
.sync-error,.staff-reply,.continue-card,.joey-answer>div,.joey-recommend-card{background:var(--sage);color:var(--cocoa);border-radius:14px;border:0}
.sync-error button{min-height:44px}.member-key,.member-detail{background:var(--cocoa);color:var(--surface);border-radius:16px;box-shadow:none}
.member-key h2,.member-detail h3{font-size:1.375rem;font-weight:500}.member-key b{font-family:var(--ui-font);color:var(--surface);font-weight:600}
.member-key>span,.member-key p,.member-key small,.member-key>div span,.member-stats span,.member-detail p{color:#e8e0d7;font-size:.8125rem}.member-stats b{color:var(--surface)}
.member-open>span{font-size:.75rem;letter-spacing:.5px}.mine-intro h1{font-size:1.625rem}.mine-shortcuts span{font-size:.75rem;color:var(--muted)}
.my-menu{background:var(--surface);border:0;border-radius:14px;padding:0 16px}.my-menu>button,.my-menu>a{font-size:.9375rem;min-height:56px}.my-menu>*:last-child{border:0}
.points-balance strong,.pickup-ticket>strong,.order-record>strong{font-family:var(--ui-font);font-variant-numeric:tabular-nums}.order-record>strong{font-size:1.125rem;font-weight:600}
.order-progress li{color:var(--muted)}.order-progress li.reached>span{background:var(--selected);color:var(--cocoa);border-color:var(--mustard)}
.receipt-scene{height:100px;aspect-ratio:auto;background:var(--paper);border-radius:14px}.receipt-scene>img{object-fit:contain;object-position:right}.receipt-scene>span{color:var(--cocoa)}
/* Secondary destinations inherit the same palette without recoloring instructional objects. */
.module-hero{aspect-ratio:auto;min-height:250px;margin:0 18px;border-radius:16px;background:var(--paper)}
.module-hero .hero-art{height:250px;object-fit:cover}.module-hero .hero-copy{top:20px;left:20px;width:calc(100% - 40px)}.module-hero .hero-copy h1{font-size:1.625rem;line-height:1.5;margin:0}
.illustration-label{color:var(--muted);background:var(--paper);font-size:.75rem}
.experience-tile{background:var(--surface);border-radius:14px;padding:0 16px 20px}.experience-tile h3{font-size:1.375rem}.experience-tile p,.experience-tile>span:last-child{font-size:.8125rem;color:var(--muted);line-height:1.7}.experience-tile>span:last-child{min-height:44px;display:flex;align-items:center;color:var(--cocoa)}
.experience-tile .product-icon{height:112px;background:var(--paper)}
.group-intro{background:var(--paper)}.group-intro h1{font-size:1.875rem}.group-intro p,.group-card p,.group-card>div>span{font-size:.875rem}.group-card h2{font-size:1.375rem}
.experience-catalog{color:var(--cocoa)}.experience-catalog h1{font-size:1.75rem}.experience-catalog header p,.experience-choice p,.experience-catalog-note{color:var(--muted)}.experience-choice{border-color:var(--line)}.experience-choice>img{background:var(--surface)}.experience-choice span{color:var(--cocoa)}.experience-choice:hover{background:var(--sage)}
.storage-intro{background:var(--paper);border-radius:14px;min-height:220px;aspect-ratio:auto}.storage-intro>img{height:220px}.storage-intro h2{font-size:1.5rem;line-height:1.5}.storage-intro p{font-size:.8125rem}
.joey-bubble{background:var(--surface);color:var(--cocoa);border:0;border-radius:14px;box-shadow:0 5px 22px #3918121f;animation-duration:200ms;padding-top:18px}
.joey-bubble:after{background:var(--surface);border:0}.joey-bubble-title,.joey-bubble-footer>span,.joey-bubble-footer button{color:var(--muted)}.joey-bubble-close{min-height:44px;min-width:44px;color:var(--muted)}.joey-bubble p{font-size:.8125rem}.joey-cta{color:var(--cocoa);font-size:.8125rem;min-height:44px}.joey-bubble-footer button{min-height:44px}
.joey-input{background:var(--surface);border-color:#9d8d85}.joey-input input{min-height:44px;font-size:1rem}.joey-input button{min-width:44px;min-height:44px}
#joey-dock .pet-picture img{transition-duration:200ms}
#jieou-prototype-v3{--j-paper:var(--surface);--j-ink:var(--cocoa);--j-muted:var(--muted);--j-accent:var(--cocoa);--j-soft:var(--sage);--j-line:var(--line)}
.j-lesson{background:var(--surface);border-radius:14px}.j-callout{background:var(--sage);color:var(--cocoa)}
#jieou-prototype-v3 .g-modes button[aria-pressed=true],.j-choice[aria-pressed=true]{background:var(--selected);color:var(--cocoa)}
#jieou-prototype-v3 .g-modes button[aria-pressed=true]:before{content:'✓';margin-right:5px}
#jieou-prototype-v3 .g-number-control button,#jieou-prototype-v3 .g-number-control input{min-height:44px;min-width:44px}
#jieou-prototype-v3 .g-goal strong{font-family:var(--ui-font)}
.bead-page{background:var(--paper);color:var(--cocoa)}
.bead-page :is(.bead-intro p,.bead-product-info>p,.bead-facts,.bead-list-bottom,.bead-local-note,.bead-overview-copy>p,.bead-section-heading>span,.bead-note,.bead-material-group h4,.bead-material small,.bead-outline a>span,.bead-source,.bead-reset,.bead-lesson-header span,.bead-material-strip small,.bead-step-index,.bead-demo-heading>span,.bead-thread-legend,.bead-source-inline){color:var(--muted)}
.bead-intro h2{font-size:1.875rem}.bead-start-inline,.bead-overview-actions .primary,.bead-step-footer a{background:var(--cocoa);color:var(--surface)}
.bead-progress{background:var(--line)}.bead-progress>span{background:var(--cocoa)}
.bead-cover-link,.bead-cover,.bead-overview-image,.bead-cover-link>span,.bead-demo video,.bead-video-controls select{background:var(--surface);color:var(--cocoa)}
.bead-text-link,.bead-source summary,.bead-lesson-header>a:last-child,.bead-video-controls button,.bead-video-controls select{color:var(--cocoa)}
.bead-material-section,.bead-material,.bead-outline a,.bead-source,.bead-lesson-header,.bead-check{border-color:var(--line)}
.bead-steps a{border-color:#9d8d85}.bead-steps a.is-done,.bead-steps a[aria-current=step],.bead-video-controls button[aria-pressed=true],.bead-step-footer button[aria-pressed=true]{background:var(--selected);color:var(--cocoa);border-color:var(--mustard)}
.bead-steps a[aria-current=step]{outline:2px solid var(--cocoa);outline-offset:-2px;font-weight:600}
.bead-step-footer{background:var(--surface);border-color:var(--line)}.bead-step-footer button:nth-child(2){color:var(--cocoa);border-color:#9d8d85}.bead-step-footer button:first-child{background:var(--paper);color:var(--cocoa)}
.bead-finish,.bead-media-error{background:var(--sage);color:var(--cocoa)}.bead-check .bead-tip{color:var(--muted)}
@media(max-width:359px){
  .brand-header,[data-page=home] .brand-header{padding:14px 16px;min-height:72px}.brand-wordmark{width:112px}
  .scene-images{height:250px}.scene-editorial{left:18px;top:12px}.scene-copy h1{font-size:1.75rem}.scene-copy p{font-size:.75rem;max-width:12em}
  .scene-bottom{margin:0 12px}.section-pad{padding:24px 16px}.quick-actions a{font-size:.75rem}.daily-note{font-size:.75rem}
  .menu-workspace{grid-template-columns:68px minmax(0,1fr)}.category-rail button{padding:14px 8px;font-size:.75rem}.menu-catalog{padding:0 10px}.menu-row{gap:9px}.menu-row .menu-photo{width:58px;height:80px}.menu-row h3{font-size:.9375rem}.menu-row p{font-size:.75rem}.menu-row .add-item{font-size:.75rem;padding:8px 10px}
  .store-line{flex-wrap:wrap}.store-line h1{font-size:1.125rem}.fulfillment-switch{font-size:.75rem}.counter-feature h2{font-size:1.125rem}.counter-feature p{font-size:.75rem}.counter-feature .menu-photo{width:85px;height:108px}
  .event-row{gap:10px}.event-content h3{font-size:.9375rem}.small-outline{padding:8px 10px}.event-content p{font-size:.75rem}
  .module-hero,.module-hero .hero-art{min-height:220px;height:220px}.module-hero .hero-copy h1{font-size:1.375rem}
  .cart-summary{gap:8px}.cart-summary .cart-next{font-size:.8125rem}.cart-caption small{font-size:.75rem}
}
@media(prefers-reduced-motion:reduce){.scene-image,.scene-copy,.joey-bubble,dialog[open],.cart-summary.just-added .cart-bag,button{animation:none;transition:none}}

/* Existing busy flags are visual only; submissions and API behavior stay unchanged. */
form[data-busy=true]:after{content:'正在处理，请稍候…';display:block;padding:14px 0 14px 36px;background:url('assets/art/cup.png') left center/26px auto no-repeat;color:var(--muted);font-size:.8125rem}
.teaching-preview-note{background:var(--sage);color:var(--muted);border-color:var(--line);font-size:.75rem;padding:4px 20px}.teaching-preview-note button{min-height:44px}
#teaching-preview-dialog{background:var(--surface);color:var(--cocoa);border:0;border-radius:16px}#teaching-preview-dialog::backdrop{background:#39181255;backdrop-filter:none}#teaching-preview-dialog .preview-eyebrow{display:none}#teaching-preview-dialog .preview-explanation{color:var(--muted)}#teaching-preview-dialog .preview-dismiss{color:var(--cocoa);min-width:44px;min-height:44px}#teaching-preview-dialog .preview-store-button{background:var(--cocoa);color:var(--surface);min-height:48px}#teaching-preview-dialog .preview-stay-button{color:var(--cocoa);min-height:44px}
