@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&family=Noto+Serif+SC:wght@600;700;900&display=swap');
:root{--cream:#f5efe1;--paper:#fffaf0;--red:#bd4e39;--red-dark:#a34030;--ink:#433c32;--muted:#958674;--line:#e5d9c5;--green:#768776;--soft-red:#f4e2d8;--gold:#bf904d;font-family:'Noto Sans SC','Microsoft YaHei',sans-serif;color:var(--ink);background:#e9e3d5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 0,#f9f4e9 0,#e9e3d5 70%);-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ac7d49;outline-offset:3px}a{color:inherit;text-decoration:none}.defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.phone-shell{max-width:450px;margin:28px auto;background:var(--cream);box-shadow:0 20px 70px #59472817,0 0 0 1px #fff9;border-radius:22px;overflow:hidden;position:relative}.topbar{height:68px;padding:0 22px;display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:9px;margin-right:auto;font-size:14px;font-weight:800;letter-spacing:1px}.brand>span:first-child{width:39px;height:39px}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.4px;color:var(--muted);margin-top:3px}.wallet{display:flex;gap:5px;align-items:center;font-size:13px}.wallet .icon{color:var(--gold);width:19px}.icon-button{position:relative;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#877962}.icon-button:hover{background:#e8decd}.mute-line{width:24px;height:1.5px;background:currentColor;position:absolute;transform:rotate(-45deg)}.sound-on .mute-line{display:none}.shop-banner{position:relative;background:var(--red);color:#fff0d7;margin:0 14px;border-radius:9px 9px 3px 3px;overflow:hidden;box-shadow:0 4px 0 #a14331}.awning{height:14px;display:flex;border-bottom:1px solid #ffffff20}.awning i{width:10%;background:#cc6650;position:relative}.awning i:nth-child(even){background:#f3e6c9}.awning i:after{content:'';position:absolute;width:100%;height:8px;top:10px;border-radius:0 0 100% 100%;background:inherit}.banner-content{padding:22px 25px 21px;position:relative}.banner-kicker{font-size:9px;letter-spacing:3px;opacity:.8}.shop-banner h1{font-family:'Noto Serif SC','SimSun',serif;font-size:34px;letter-spacing:4px;margin:7px 0 5px;font-weight:900;line-height:1.35}.shop-banner p{margin:0;font-size:10px;letter-spacing:2px;opacity:.8}.shop-stamp{display:inline-flex;flex-direction:column;text-align:center;font-size:10px;font-family:serif;line-height:1.2;letter-spacing:0;border:1px solid #efd2ae80;padding:4px 3px;vertical-align:middle;margin-left:11px;transform:rotate(8deg);font-weight:400}.banner-flower{position:absolute;right:24px;bottom:17px;font-size:45px;opacity:.35;line-height:1}.day-strip{padding:20px 24px 12px;display:flex;align-items:center;justify-content:space-between;font-size:10px}.day-strip>span{display:flex;align-items:center;gap:6px}.day-strip .icon{width:15px;height:15px;color:var(--gold)}.day-strip strong{font-weight:600}.day-strip i{font-style:normal;color:var(--muted);padding-left:7px;margin-left:3px;border-left:1px solid var(--line);font-size:9px}.help-link{display:flex;gap:5px;align-items:center;font-size:10px;color:var(--muted);padding:8px 0 8px 8px}.help-link .icon{color:var(--muted);width:14px}.order-card{margin:0 20px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:13px 16px 12px;box-shadow:0 3px 0 #e4d8c04d}.order-top{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:var(--muted)}.section-eyebrow{font-weight:600;color:var(--red);letter-spacing:1px;display:flex;align-items:center;gap:6px}.section-eyebrow i{height:5px;width:5px;background:var(--red);border-radius:50%}.order-number b{color:var(--red);font-weight:600}.customer-row{display:flex;align-items:center;margin-top:11px;gap:10px}.customer-avatar{width:43px;height:43px;background:#f1e4cd;border:1px solid #e5d4b8;border-radius:50%;overflow:hidden;flex-shrink:0}.customer-avatar svg{width:100%;height:100%;display:block}.customer-info h2{font-size:14px;margin:0 0 2px;font-weight:700}.customer-info>span{font-size:9px;color:var(--muted)}.dish-tag{margin-left:auto;font-size:9px;padding:5px 8px;background:#e8eddf;border-radius:4px;color:#6b7a5b;white-space:nowrap}.order-card blockquote{margin:10px 0 8px;font-size:12px;font-weight:500;line-height:1.9;letter-spacing:.2px}.order-tags{display:flex;gap:5px;flex-wrap:wrap}.order-tag{font-size:8px;line-height:1.6;color:#a06b51;border:1px solid #ead8c6;border-radius:3px;padding:2px 7px;background:#f9f0e4}.order-tag.forbidden{background:#f3e4dc;color:var(--red);border-color:#e9d0c2}.mixing-station{padding:17px 20px 0}.station-heading{display:flex;align-items:center;justify-content:space-between}.station-heading h2,.ingredient-heading h2{font-size:13px;margin:0;font-weight:800}.station-heading h2 span,.ingredient-heading h2 span{font-size:8px;color:var(--muted);font-weight:400;margin-left:8px}.bowl-capacity{display:flex;gap:3px;align-items:baseline;font-size:11px;flex-wrap:wrap;justify-content:flex-end;width:75px}.bowl-capacity>span{font-weight:700;color:var(--red)}.bowl-capacity i{font-size:8px;color:var(--muted);font-style:normal}.capacity-track{height:3px;width:61px;background:#e4dac9;border-radius:3px;overflow:hidden}.capacity-track b{display:block;background:var(--gold);width:0;height:100%;transition:width .2s}.bowl-stage{position:relative;height:156px;display:flex;align-items:center;justify-content:center;margin:2px 0 0}.bowl-stage>#bowl-art{width:342px;max-width:100%;transform:translateY(5px)}#bowl-art svg{display:block;width:100%;height:auto;overflow:visible}.bowl-annotation{position:absolute;right:0;top:12px;font-size:8px;color:var(--muted);display:flex;align-items:center;gap:4px;z-index:1}.bowl-annotation i{width:5px;height:5px;border:1px solid #aeb299;border-radius:50%}.bowl-spark{position:absolute;color:#bc9f70;font-size:19px}.bowl-spark.left{left:18px;top:50px}.bowl-spark.right{right:24px;bottom:27px;font-size:13px}.recipe-line{display:flex;align-items:center;gap:8px;height:31px;margin-bottom:10px}.recipe-label{color:var(--muted);font-size:8px;flex-shrink:0}.recipe-chips{display:flex;gap:5px;flex:1;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.recipe-chips::-webkit-scrollbar{display:none}.recipe-chip{font-size:8px;color:#8c7057;padding:4px 6px;background:#eae1d1;border-radius:3px}.recipe-chip b{font-size:8px;font-weight:500;color:var(--red);margin-left:4px}.empty-recipe{font-size:9px;color:#b2a38e}.undo-button{border:1px solid var(--line);height:27px;width:29px;border-radius:6px;display:grid;place-items:center;flex-shrink:0;color:#8e7961}.undo-button .icon{width:13px;height:13px}.undo-button:disabled{opacity:.4}.flavor-panel{border:1px solid var(--line);border-radius:9px;background:#f9f4e9;padding:10px 12px}.flavor-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.flavor-heading h3{font-size:9px;margin:0;font-weight:600}.flavor-heading>span{display:flex;align-items:center;gap:4px;font-size:7px;color:var(--muted)}.current-legend{height:4px;width:9px;background:var(--red);display:inline-block;border-radius:2px}.target-legend{height:8px;width:2px;background:#928673;display:inline-block;margin-left:6px}.taste-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.taste-item>div{display:flex;align-items:center;justify-content:space-between;font-size:8px;margin-bottom:5px}.taste-item b{font-size:7px;font-weight:500;color:var(--muted)}.taste-track{height:5px;background:#e8dece;border-radius:3px;position:relative}.taste-fill{height:100%;border-radius:3px;width:0;background:var(--taste-color,var(--red));transition:width .25s}.taste-target{position:absolute;width:2px;height:9px;background:#887c6a;top:-2px;border-radius:1px}.ingredient-section{padding:16px 20px 0}.ingredient-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ingredient-heading h2 span{display:block;margin:3px 0 0;font-size:8px}.spoon-switch{background:#e9e0d0;border-radius:6px;padding:3px;display:flex;gap:1px}.spoon-switch button{font-size:9px;color:#9e8b74;padding:6px 9px;border-radius:4px;line-height:1}.spoon-switch button b{font-size:8px;margin-left:2px;font-weight:500}.spoon-switch button.active{background:var(--paper);color:var(--red);box-shadow:0 1px 3px #60442613}.ingredient-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.ingredient-button{position:relative;background:#fffaf0;border:1px solid #e5d8c3;border-radius:8px;padding:3px 3px 7px;min-height:96px;display:flex;flex-direction:column;align-items:center;transition:transform .16s,background .16s,border-color .16s;box-shadow:0 2px 0 #e2d4bd4a}.ingredient-button:hover{border-color:#bc9874;background:#fffdf5;transform:translateY(-2px)}.ingredient-button:active,.ingredient-button.added{transform:scale(.93);background:#f9e7d9;border-color:#c87e5c}.ingredient-art{height:56px;width:55px;display:block}.ingredient-art svg{width:100%;height:100%;display:block}.ingredient-button strong{font-size:11px;font-weight:600;letter-spacing:.5px;margin-top:1px}.ingredient-button small{font-size:7px;color:#a38c73;margin-top:2px}.ingredient-count{position:absolute;right:5px;top:5px;font-size:8px;width:16px;height:16px;border-radius:50%;background:#eee1cb;color:#9e7759;display:grid;place-items:center}.ingredient-count:empty{display:none}.add-mark{position:absolute;right:6px;bottom:32px;color:#b9a58d;font-size:11px}.action-panel{padding:13px 20px 14px}.action-hint{display:flex;align-items:center;justify-content:space-between;font-size:8px;margin-bottom:9px}.action-hint>span{display:flex;align-items:center;gap:5px;color:#9a886f}.action-hint i{height:4px;width:4px;border-radius:50%;background:#9aab83}.action-hint b{font-weight:400}.action-hint>button{font-size:8px;text-decoration:underline;text-underline-offset:3px;color:#8f795f;padding:3px 0 3px 10px}.action-hint>button:disabled{opacity:.4}.main-actions{display:flex;gap:9px}.taste-button{display:flex;align-items:center;justify-content:center;gap:7px;background:#faf4e7;border:1px solid #d8c7ac;border-radius:8px;min-height:46px;font-size:12px;width:31%;font-weight:600;color:#8d7053}.taste-button .icon{width:17px}.serve-button{flex:1;background:var(--red);color:#fff0d9;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:28px;font-size:13px;min-height:46px;font-weight:700;letter-spacing:1px;box-shadow:0 3px 0 var(--red-dark);transition:filter .15s,transform .15s}.serve-button .icon{width:16px}.serve-button:hover{filter:brightness(1.07)}.serve-button:disabled{background:#c48b73;box-shadow:0 3px 0 #b5806a;opacity:.7}.serve-button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--red-dark)}.bottom-nav{display:flex;border-top:1px solid #e2d7c5;background:#fbf5e8;padding:9px 32px 10px;gap:28px}.nav-button{display:flex;align-items:center;flex-direction:column;gap:4px;flex:1;font-size:8px;color:#a19079;position:relative;padding:2px 0}.nav-button .icon{width:19px;height:19px}.nav-button.active{color:var(--red);font-weight:600}.nav-button.active i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--red);bottom:-5px}.desktop-note{position:fixed;left:calc(50% - 500px);top:26%;color:#78624c}.note-small{font-size:10px;letter-spacing:4px}.desktop-note p{font-family:'Noto Serif SC',serif;font-size:37px;font-weight:700;line-height:1.8;margin:20px 0;letter-spacing:7px}.desktop-note p>span{color:var(--red)}.seal{color:var(--red);border:2px solid var(--red);display:inline-block;line-height:1.2;font-family:serif;font-size:15px;padding:4px 6px;transform:rotate(-7deg);opacity:.7}.desktop-line{width:27px;height:1px;background:#bba990;margin-top:40px;margin-bottom:12px}.desktop-note small{font-size:9px;letter-spacing:2px;color:#a38e77}.desktop-meta{position:fixed;left:calc(50% + 300px);top:33%;color:#a38e77}.desktop-meta>span{font-size:9px;letter-spacing:3px}.desktop-meta>b{display:block;font-size:12px;line-height:2.8;margin:23px 0 26px;font-weight:500;letter-spacing:3px;color:#8a7054}.desktop-meta p{font-family:'Noto Serif SC',serif;line-height:2.4;font-size:11px;letter-spacing:3px}.desktop-meta .meta-wave{font-size:32px;color:#bfa98a}.toast{position:fixed;z-index:20;bottom:95px;left:50%;transform:translate(-50%,8px);max-width:calc(100vw - 40px);background:#514437ed;color:#fff5e5;border:1px solid #b59c7744;font-size:11px;padding:11px 18px;border-radius:30px;box-shadow:0 5px 20px #59433220;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #ddc9a9;border-radius:16px;background:var(--paper);color:var(--ink);width:calc(100% - 40px);max-width:398px;max-height:85dvh;overflow-y:auto;padding:18px 24px 24px;box-shadow:0 30px 100px #3a291b44}dialog::backdrop{background:#43352580;backdrop-filter:blur(4px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:9px;letter-spacing:2px;color:var(--red)}.modal-top .icon-button{margin-right:-10px}.modal-title{font-family:'Noto Serif SC',serif;font-size:25px;margin:8px 0 12px;letter-spacing:1px}.modal-copy{font-size:12px;line-height:1.9;color:#8a735d}.modal-primary{display:flex;width:100%;align-items:center;justify-content:center;background:var(--red);color:var(--paper);border-radius:8px;min-height:44px;font-size:12px;font-weight:600;margin-top:20px}.modal-secondary{display:block;width:100%;font-size:10px;color:var(--muted);text-align:center;margin-top:12px;padding:5px}.how-step{display:flex;gap:12px;margin:17px 0;font-size:11px;line-height:1.8}.how-step>b{color:var(--red);font-size:18px;font-family:serif;font-weight:400}.how-step strong{display:block;font-size:12px;margin-bottom:3px}.how-step p{margin:0;color:#9a8268;font-size:10px}.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.manual-item{display:flex;align-items:center;gap:5px;background:#f4ead7;border-radius:8px;padding:8px 5px}.manual-item svg{width:45px;height:47px;flex-shrink:0}.manual-item strong{display:block;font-size:11px;margin-bottom:3px}.manual-item small{display:block;color:var(--muted);font-size:8px;line-height:1.6}.manual-foot{font-size:9px;line-height:1.9;color:#a08b73;margin-top:17px}.taste-advice{font-size:13px;line-height:1.9;background:#f1e6d3;border-left:3px solid var(--gold);padding:12px;margin:12px 0;color:#7f654c}.comparison-row{display:grid;grid-template-columns:40px 1fr 49px;align-items:center;gap:10px;font-size:10px;margin:14px 0}.comparison-row .taste-track{height:7px}.comparison-row>span:last-child{font-size:9px;color:#a08a71;text-align:right}.result-score{font-family:'Noto Serif SC',serif;font-size:66px;text-align:center;line-height:1.3;color:var(--red);margin:12px 0 0}.result-score small{font-family:sans-serif;font-size:12px;letter-spacing:0;color:#ac9176}.result-stars{font-size:22px;text-align:center;letter-spacing:8px;color:#c8a35e}.result-title{text-align:center;font-family:'Noto Serif SC',serif;font-size:23px;margin:14px 0 10px}.result-feedback{font-size:12px;line-height:1.9;text-align:center;color:#93775d}.result-coins{font-size:12px;text-align:center;background:#eee4cc;border-radius:5px;padding:10px;margin:16px 0;color:#a1783d}.day-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.day-summary>div{text-align:center;background:#f1e6d3;border-radius:8px;padding:14px 6px}.day-summary b{display:block;color:var(--red);font-family:serif;font-size:25px;font-weight:400;margin-bottom:6px}.day-summary span{font-size:9px;color:#9f876b}.journal-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.journal-avatar{width:38px;height:38px;background:#eee0c9;border-radius:50%;overflow:hidden}.journal-avatar svg{width:100%;height:100%}.journal-row strong{display:block;font-size:11px}.journal-row small{font-size:9px;color:var(--muted)}.journal-row>b{margin-left:auto;color:var(--red);font-size:19px;font-family:serif}.journal-row>b>small{font-family:sans-serif;font-size:8px}.reset-note{font-size:9px;color:var(--muted);line-height:1.8}.sauce-liquid{transition:fill .6s}.bowl-herbs{transition:opacity .5s}#ingredient-float{position:absolute;top:55px;left:50%;font-size:13px;font-weight:700;color:var(--red);opacity:0;pointer-events:none}.floating{animation:floatUp .8s ease-out}.mixing #bowl-art{animation:mixBowl .28s ease-in-out infinite}.mixing .sauce-liquid{filter:brightness(1.08)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,12px)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-32px)}}@keyframes mixBowl{0%,100%{transform:translateY(5px) rotate(-2deg)}50%{transform:translateY(5px) rotate(2deg)}}@media(min-width:1300px){.phone-shell{margin-top:36px;margin-bottom:36px}}@media(max-width:1100px){.desktop-note,.desktop-meta{display:none}}@media(max-width:520px){body{background:var(--cream)}.phone-shell{margin:0 auto;border-radius:0;box-shadow:none;min-height:100dvh}.topbar{padding:0 20px;height:58px}.shop-banner{margin:0 12px}.banner-content{padding:18px 22px 17px}.shop-banner h1{font-size:32px;margin:6px 0 4px}.banner-kicker{font-size:8px}.day-strip{padding-top:15px;padding-bottom:10px}.order-card{padding:11px 14px 10px}.mixing-station{padding-top:13px}.bowl-stage{height:141px}.bowl-stage>#bowl-art{width:310px}.ingredient-section{padding-top:13px}.ingredient-button{min-height:89px}.ingredient-art{height:50px;width:51px}.action-panel{padding-top:11px;padding-bottom:13px}.bottom-nav{padding-bottom:max(10px,env(safe-area-inset-bottom));gap:25px}}@media(max-width:365px){.topbar{padding:0 15px}.brand{font-size:12px}.brand small{font-size:7px}.wallet{font-size:11px}.order-card{margin:0 14px}.mixing-station,.ingredient-section,.action-panel{padding-left:14px;padding-right:14px}.shop-banner h1{font-size:29px}.customer-info h2{font-size:13px}.order-card blockquote{font-size:11px}.station-heading h2 span{font-size:7px}.taste-grid{gap:6px}.ingredient-button strong{font-size:10px}.ingredient-button small{font-size:6px}.day-strip i{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Compact, thumb-friendly portrait play area. */
:root{line-height:1.5}.banner-content{line-height:1.2}.shop-banner p{line-height:1.5}.day-strip .help-link{line-height:1.4}.ingredient-button{line-height:1.4}.station-heading h2,.ingredient-heading h2{line-height:1.4}.order-card blockquote{line-height:1.8}.flavor-panel{line-height:1.4}
@media(max-width:520px){.topbar{height:52px}.banner-content{padding:15px 22px 14px}.shop-banner h1{font-size:30px;margin:6px 0 3px}.banner-kicker{font-size:8px}.shop-banner p{font-size:9px}.day-strip{padding:10px 23px 9px}.help-link{padding-top:3px;padding-bottom:3px}.order-top{line-height:1.4}.customer-row{margin-top:8px;gap:8px}.customer-avatar{width:37px;height:37px}.order-card blockquote{margin:7px 0;font-size:11px}.order-card{padding:10px 13px}.order-tag{line-height:1.4}.mixing-station{padding-top:12px}.station-heading{height:22px}.bowl-stage{height:122px}.bowl-stage>#bowl-art{width:277px}.bowl-annotation{top:8px;font-size:7px}.recipe-line{height:25px;margin-bottom:7px}.flavor-panel{padding:8px 10px}.flavor-heading{margin-bottom:7px}.taste-item>div{margin-bottom:4px}.ingredient-section{padding-top:12px}.ingredient-heading{margin-bottom:8px}.ingredient-button{min-height:81px;padding-bottom:6px}.ingredient-art{height:45px;width:47px}.ingredient-grid{gap:6px}.ingredient-button strong{font-size:10px}.action-panel{padding:11px 20px 12px}.action-hint{margin-bottom:7px}.main-actions>button{min-height:43px}.bottom-nav{padding-top:7px;gap:25px}.bottom-nav .icon{width:18px;height:18px}.nav-button{gap:3px}}
[hidden]{display:none!important}
@media(max-width:520px){.topbar{height:50px}.banner-content{font-size:9px;padding:10px 22px}.shop-banner h1{font-size:28px;margin:5px 0 3px}.awning{height:12px}.day-strip{padding:7px 23px}.help-link{padding-top:2px;padding-bottom:2px}.customer-info{font-size:9px;line-height:1.3}.customer-info h2{line-height:1.4}.order-card{padding:9px 13px}.order-card blockquote{margin:5px 0}.bowl-stage{height:90px}.bowl-stage>#bowl-art{width:231px;transform:translateY(4px)}.bowl-annotation{top:1px;font-size:7px}.bowl-spark.left{top:36px}.bowl-spark.right{bottom:16px}.flavor-panel{font-size:9px}.ingredient-heading h2 span{display:inline;margin:0 0 0 6px;font-size:7px}.ingredient-heading{margin-bottom:7px}.ingredient-section{padding-top:10px}.ingredient-art{height:41px;width:43px}.ingredient-button{min-height:76px}.ingredient-button strong{margin-top:0}.ingredient-button small{margin-top:1px}.action-panel{padding-top:8px;padding-bottom:10px}.action-hint{margin-bottom:6px}.action-hint button{line-height:1.2}.bottom-nav{padding-top:6px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.nav-button{line-height:1.2}}
@media(max-width:520px){.topbar{height:48px}.banner-content{padding-top:8px;padding-bottom:8px}.shop-banner h1{font-size:26px}.day-strip{padding-top:6px;padding-bottom:6px}.order-card{padding-top:8px;padding-bottom:8px}.customer-row{margin-top:7px}.order-card blockquote{margin-top:4px;margin-bottom:4px}.ingredient-section{padding-top:8px}.ingredient-art{height:39px}.ingredient-button{min-height:72px}.action-panel{padding-top:6px}}
@media(max-width:520px){.banner-content{padding-top:7px;padding-bottom:7px}}
/* Factory orders: dossiers and judgment precede sample development. */
.brief-actions{display:flex;border-top:1px dashed #e1d2bb;margin-top:9px;padding-top:8px;gap:8px}.brief-actions button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:29px;font-size:9px;border:1px solid #deceb7;border-radius:5px;flex:1;background:#f7eddd;color:#927555}.brief-actions .icon{height:12px;width:12px}.brief-actions #position-button{color:var(--red);background:#f7e7dc;border-color:#e8cbb9}.brief-actions #position-button.chosen{background:#e8ecd9;color:#6c7c53;border-color:#d3d9bd}.brief-meta{display:flex;gap:7px;margin-bottom:13px}.brief-meta span{font-size:9px;background:#eee2ca;border-radius:4px;padding:4px 8px;color:#927454}.dossier-section{padding:12px 0;border-bottom:1px solid var(--line)}.dossier-section h3{font-size:11px;margin:0 0 5px;color:#75624a;display:flex;gap:8px;align-items:center}.dossier-section h3 b{color:var(--red);font-size:10px;letter-spacing:1px}.dossier-section p{font-size:11px;line-height:1.9;margin:0;color:#92795e}.position-options{display:flex;flex-direction:column;gap:10px;margin-top:18px}.position-option{display:flex;align-items:center;gap:10px;padding:14px 12px;background:#f4ead7;border:1px solid #e3d1b2;border-radius:8px;text-align:left;min-height:74px;width:100%}.position-option:hover,.position-option.selected{border-color:var(--red);background:#f4e1d3}.position-option>span:nth-child(2){flex:1}.position-option strong{font-size:12px;display:block;margin-bottom:4px}.position-option small{font-size:10px;display:block;line-height:1.7;color:#94795e}.position-radio{border:1px solid #c7ab85;border-radius:50%;height:14px;width:14px;flex-shrink:0}.selected .position-radio{border:4px solid var(--red)}.position-option>b{font-size:14px;color:#b99473;font-weight:400}.assessment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.assessment-grid>div{text-align:center;background:#f0e5d0;border-radius:6px;padding:12px 4px}.assessment-grid b{display:block;color:var(--red);font-size:25px;font-family:serif;font-weight:500}.assessment-grid small{font-size:10px;color:#b09676}.assessment-grid span{font-size:9px;color:#947b5e}.reasoning-detail{font-size:10px;border:1px solid var(--line);border-radius:6px;padding:10px;color:#977b5e}.reasoning-detail summary{cursor:pointer;line-height:1.6;color:#8f6c4c}.reasoning-detail p{line-height:1.9;margin-bottom:0}.retry-note{font-size:10px;line-height:1.8;color:#a07e5d;text-align:center;margin:15px 0}.heritage-ready{color:#72845a!important}.customer-info h2{font-size:13px}.shop-banner p{letter-spacing:2px}.result-title{font-size:22px}.result-score{font-size:54px}.order-card blockquote{font-size:11px}.brand small{font-size:7px}
@media(max-width:520px){.banner-content{padding-top:6px;padding-bottom:6px}.shop-banner h1{font-size:25px;margin:3px 0 2px}.banner-kicker{font-size:7px;letter-spacing:2px}.shop-banner p{font-size:8px}.brief-actions{margin-top:6px;padding-top:6px}.brief-actions button{min-height:27px;font-size:8px}.order-card blockquote{font-size:10px}.station-heading h2 span{font-size:7px;margin-left:5px}.bowl-stage{height:84px}.bowl-stage>#bowl-art{width:220px}.flavor-heading>span{font-size:7px}.day-strip i{font-size:8px}.customer-info h2{font-size:12px}.customer-info>span{font-size:8px}}
@media(max-width:520px){.mixing-station{padding-top:8px}.ingredient-section{padding-top:6px}.bowl-stage{height:76px}.bowl-stage>#bowl-art{width:212px}.ingredient-art{height:35px}.ingredient-button{min-height:68px}.bottom-nav{padding-bottom:max(6px,env(safe-area-inset-bottom))}}

/* A small bottle is capped and sealed while the store reviews the sample. */
.sample-effect{position:absolute;inset:0;display:none;align-items:center;justify-content:center;pointer-events:none;z-index:3}
.mixing .sample-effect{display:flex}.mixing #bowl-art{opacity:.2;transition:opacity .2s}
.sample-halo{position:absolute;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,#f8deb2d9 0,#efcd9355 45%,transparent 70%);animation:sampleGlow 1.5s ease-in-out infinite}
.sample-bottle{width:64px;height:86px;z-index:1;animation:samplePop .6s ease-out both,sampleBob 1.2s .6s ease-in-out infinite}.sample-bottle svg{width:100%;height:100%;display:block;overflow:visible}
.sample-cap{animation:sampleCap .5s .16s ease-out both}.sample-seal{animation:sampleSeal .35s .5s ease-out both;transform-origin:38px 15px}
.sample-spark{position:absolute;color:#b88a45;font-size:15px;animation:sampleTwinkle 1.4s ease-out infinite}.sample-spark.s1{left:calc(50% - 53px);top:22%;--spark-x:-9px;--spark-y:-12px}.sample-spark.s2{left:calc(50% + 42px);top:16%;--spark-x:8px;--spark-y:-15px;animation-delay:.2s}.sample-spark.s3{left:calc(50% + 48px);bottom:22%;--spark-x:12px;--spark-y:8px;animation-delay:.45s;font-size:10px}.sample-spark.s4{left:calc(50% - 49px);bottom:19%;--spark-x:-11px;--spark-y:7px;animation-delay:.65s;font-size:11px}
.sample-effect-label{position:absolute;top:50%;left:calc(50% + 36px);transform:translateY(-50%);font-size:9px;letter-spacing:1px;color:#9a5d3b;white-space:nowrap;padding:3px 8px;border-radius:12px;background:#f7ecd9ed}
@keyframes samplePop{0%{opacity:1;transform:translateY(12px) scale(.75)}60%{opacity:1;transform:translateY(-4px) scale(1.08)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes sampleCap{0%{opacity:0;transform:translateY(-15px) rotate(-12deg)}100%{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes sampleSeal{from{opacity:0;transform:scaleY(.1)}to{opacity:1;transform:scaleY(1)}}
@keyframes sampleBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes sampleGlow{0%,100%{opacity:.65;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
@keyframes sampleTwinkle{0%{opacity:0;transform:translate(0,0) scale(.3)}35%{opacity:.9}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) scale(1.2)}}
.result-conclusion{background:#eef0e2;border:1px solid #dce0cc;border-left:3px solid #849568;border-radius:9px;padding:14px 15px;margin:14px 0 16px;text-align:left}.conclusion-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.conclusion-heading h2{font-size:11px;letter-spacing:1px;color:#697b55;margin:0}.conclusion-status{font-size:9px;padding:3px 7px;border-radius:4px;white-space:nowrap}.conclusion-status.accepted{background:#dce5cf;color:#5c7448}.conclusion-status.rejected{background:#f2ded1;color:#a3543a}.result-conclusion p{font-size:14px;line-height:1.9;color:#514c3b;margin:0;font-weight:500}
.result-feedback{text-align:left;margin:10px 0 14px;font-size:11px}.feedback-label{display:block;font-size:9px;color:#a17c51;margin-bottom:4px;letter-spacing:1px}.result-requirements{font-size:10px;line-height:1.8;color:#a15843;background:#f6e7dc;padding:8px 10px;border-radius:6px}.result-requirements b{display:block;font-size:9px;margin-bottom:2px}
.market-score-detail{border:1px solid var(--line);border-radius:7px;margin:12px 0 20px;padding:8px 10px}.market-score-detail summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:10px;color:#8e765b;list-style:none}.market-score-detail summary::-webkit-details-marker{display:none}.market-score-detail summary b{font-family:serif;font-size:22px;color:var(--red);font-weight:500}.market-score-detail summary small{font-family:sans-serif;font-size:9px;color:#a78d6f}.score-toggle{margin-left:auto;font-size:9px}.score-toggle:after{content:' ＋';color:var(--red)}.market-score-detail[open] .score-toggle:after{content:' −'}.market-score-detail .assessment-grid{margin-bottom:0}
.restaurant-feedback{margin:18px 0}.restaurant-feedback-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.restaurant-feedback-heading h3{font-size:12px;letter-spacing:.5px;margin:0;color:#65533e}.restaurant-feedback-heading>span{font-size:9px;color:#a07e5d}.market-simulation-note{font-size:9px;line-height:1.7;color:#a08b73;margin:5px 0 12px}.restaurant-review-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.restaurant-review{display:flex;gap:9px;border:1px solid #e6d6be;background:#f7efdf;border-radius:7px;padding:11px 10px}.restaurant-review-index{font-family:serif;color:#b0946d;font-size:13px;padding-top:1px;flex-shrink:0}.restaurant-review>div{min-width:0;flex:1}.restaurant-review-heading strong{font-size:11px;color:#775536;display:block}.restaurant-review-heading small{display:block;font-size:8px;color:#a38a6d;margin-top:2px}.restaurant-review p{font-size:12px;color:#5e503f;line-height:1.8;margin:7px 0 0;overflow-wrap:anywhere}
.diner-profile{display:inline-block;font-size:8px;font-weight:400;color:#9b7d5a;border:1px solid #e5d2b5;border-radius:3px;padding:1px 4px;margin-left:7px;vertical-align:middle}
@media(max-width:520px){.sample-bottle{width:50px;height:70px}.sample-halo{width:86px;height:86px}.sample-effect-label{font-size:8px;padding:3px 7px}.sample-spark.s1{top:5%}.sample-spark.s2{top:2%}.result-conclusion{padding:12px;margin:12px 0}.result-conclusion p{font-size:13px}.result-score{margin-top:4px;font-size:46px}.result-title{margin-top:7px;margin-bottom:8px}.assessment-grid{margin:12px 0}.assessment-grid>div{padding:9px 4px}}
@media(prefers-reduced-motion:reduce){.sample-bottle,.sample-cap,.sample-seal,.sample-halo,.sample-spark{animation:none!important}.sample-spark{display:none}.mixing #bowl-art{animation:none!important}}

/* Keep long feedback scrollable while its controls remain within reach. */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.modal-open,html.modal-open body{overflow:hidden}
button{user-select:none;-webkit-user-select:none}
#modal{padding:0;overflow:hidden;max-height:90vh;max-height:90dvh}
#modal[open]{display:flex;flex-direction:column}
.modal-top{flex-shrink:0;margin:0;padding:14px 20px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:1px;gap:12px;min-height:48px}
.modal-top .icon-button{margin:0;width:44px;height:44px;flex-shrink:0}
#modal-content{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:0 20px 20px;scrollbar-width:thin;scrollbar-color:#c4b294 transparent}
.modal-actions{flex-shrink:0;padding:12px 20px 16px;background:var(--paper);border-top:1px solid var(--line)}
.modal-actions .modal-primary{margin:0;min-height:48px;font-size:14px}
.modal-actions .modal-secondary{min-height:44px;margin-top:6px;font-size:12px}
.modal-actions .modal-secondary:only-child{margin-top:0}

@media(max-width:520px){
  :root{--dock-space:190px}
  html{scroll-padding-bottom:var(--dock-space)}
  body{background:var(--cream)}
  .phone-shell{margin:0 auto;min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--dock-space) + env(safe-area-inset-bottom));border-radius:0;box-shadow:none;overflow:visible}
  .topbar{height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;gap:8px}
  .brand{font-size:14px;gap:7px;min-width:0}.brand>span:first-child{width:34px;height:34px;flex-shrink:0}.brand small{font-size:8px;letter-spacing:1px}.wallet{font-size:14px;gap:4px;flex-shrink:0}.wallet .icon{width:17px}.icon-button{width:44px;height:44px;flex-shrink:0}
  .shop-banner{margin:0 16px}.banner-content{padding:10px 17px 12px}.banner-kicker{font-size:10px;letter-spacing:1px}.shop-banner h1{font-size:28px;letter-spacing:2px;margin:4px 0}.shop-banner p{font-size:11px;letter-spacing:1px}.shop-stamp{font-size:10px}.banner-flower{font-size:34px;right:18px}
  .day-strip{padding:6px 16px;font-size:12px;gap:8px}.day-strip>span{gap:5px;min-width:0;flex-wrap:wrap}.day-strip i{font-size:10px;margin-left:0;padding-left:5px}.help-link{min-width:52px;min-height:44px;padding:8px 4px;font-size:12px;flex-shrink:0}
  .order-card{margin:0 16px;padding:12px}.order-top{font-size:10px}.customer-row{gap:9px;margin-top:10px}.customer-avatar{width:40px;height:40px}.customer-info{min-width:0;flex:1}.customer-info h2{font-size:15px;overflow-wrap:anywhere}.customer-info>span{font-size:11px;line-height:1.6}.dish-tag{font-size:11px;padding:5px 8px}.order-card blockquote{font-size:13px;line-height:1.8;margin:10px 0}.order-tag{font-size:10px;padding:3px 6px}
  .brief-actions{margin-top:10px;padding-top:9px;gap:8px}.brief-actions button{min-height:44px;font-size:12px;padding:6px}.brief-actions .icon{width:14px;height:14px}
  .mixing-station{padding:16px 16px 0;scroll-margin-top:8px}.station-heading{min-height:30px;height:auto;gap:8px}.station-heading h2{font-size:15px}.station-heading h2 span{font-size:10px;display:block;margin:3px 0 0}.bowl-capacity{font-size:13px;flex-shrink:0}.bowl-capacity i{font-size:10px}.bowl-stage{height:112px;margin-top:6px}.bowl-stage>#bowl-art{width:260px;max-width:100%}.bowl-annotation{font-size:10px;top:3px}.bowl-spark.left{left:8px;top:45px}.bowl-spark.right{right:12px;bottom:20px}.sample-bottle{width:58px;height:80px}.sample-effect-label{font-size:10px}
  .recipe-line{height:auto;min-height:48px;margin:6px 0 12px;gap:8px}.recipe-label{font-size:11px}.recipe-chips{min-width:0;flex-wrap:wrap;overflow:visible;white-space:normal;gap:4px}.recipe-chip{font-size:10px;padding:5px 6px}.recipe-chip b{font-size:10px;margin-left:3px}.empty-recipe{font-size:12px;line-height:1.6}.undo-button{width:44px;height:44px}.undo-button .icon{width:17px;height:17px}
  .flavor-panel{padding:12px}.flavor-heading{gap:8px;margin-bottom:10px;flex-wrap:wrap}.flavor-heading h3{font-size:12px}.flavor-heading>span{font-size:10px}.taste-grid{gap:8px}.taste-item>div{font-size:11px;margin-bottom:6px}.taste-item b{font-size:10px}.taste-track{height:6px}
  .ingredient-section{padding:18px 16px 0}.ingredient-heading{gap:8px;margin-bottom:10px}.ingredient-heading h2{font-size:15px}.ingredient-heading h2 span{font-size:10px}.spoon-switch{padding:3px}.spoon-switch button{min-height:44px;min-width:55px;font-size:12px;padding:8px}.spoon-switch button b{font-size:11px}.ingredient-grid{gap:8px}.ingredient-button{min-height:94px;padding:6px 3px 8px}.ingredient-art{height:44px;width:48px}.ingredient-button strong{font-size:12px}.ingredient-button small{font-size:9px;margin-top:3px;line-height:1.5}.ingredient-count{font-size:10px;width:20px;height:20px}.add-mark{bottom:36px;right:5px}
  .mobile-dock{position:fixed;z-index:8;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:450px;background:var(--cream);border-top:1px solid #ddccb0;box-shadow:0 -8px 24px #60442612}
  .action-panel{padding:8px 16px 10px}.action-hint{font-size:11px;gap:8px;margin-bottom:6px;min-height:44px}.action-hint>span{min-width:0;flex:1;line-height:1.6;gap:5px}.action-hint i{flex-shrink:0}.action-hint b{overflow-wrap:anywhere}.action-hint>button{font-size:12px;min-height:44px;min-width:60px;padding:4px;flex-shrink:0}.main-actions{gap:10px}.main-actions>button{min-height:48px;font-size:14px}.taste-button{width:30%;gap:5px}.serve-button{gap:8px;letter-spacing:.5px;min-width:0}.serve-button .icon{flex-shrink:0}
  .bottom-nav{padding:4px 18px calc(6px + env(safe-area-inset-bottom));gap:16px}.nav-button{min-height:48px;font-size:11px;gap:4px}.nav-button .icon{width:20px;height:20px}.nav-button.active i{bottom:0}
  .toast{bottom:calc(var(--dock-space) + 8px + env(safe-area-inset-bottom));white-space:normal;text-align:center;font-size:12px;line-height:1.6;max-width:calc(100vw - 32px)}
  #modal{width:100%;max-width:450px;max-height:calc(100vh - env(safe-area-inset-top) - 12px);max-height:calc(100dvh - env(safe-area-inset-top) - 12px);margin:auto auto 0;border-radius:18px 18px 0 0;border-bottom:0;box-shadow:0 -12px 70px #3a291b33}
  .modal-top{padding:12px 16px;min-height:52px;font-size:12px;line-height:1.6}.modal-top:before{content:'';position:absolute;top:5px;left:50%;transform:translateX(-50%);width:30px;height:3px;border-radius:3px;background:#d6c5aa}.modal-top .icon-button{margin-left:auto}
  #modal-content{padding:0 16px 20px;scroll-padding-block:16px;overflow-wrap:anywhere}.modal-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.modal-actions .modal-primary{min-height:50px;font-size:15px}.modal-actions .modal-secondary{font-size:13px}
  .modal-title{font-size:23px;line-height:1.5;margin:14px 0 12px}.modal-copy,.taste-advice{font-size:14px;line-height:1.85}.manual-foot,.retry-note,.market-simulation-note{font-size:11px;line-height:1.8}.how-step strong{font-size:14px}.how-step p{font-size:13px}.brief-meta{flex-wrap:wrap;gap:6px}.brief-meta span{font-size:11px}.dossier-section h3{font-size:14px}.dossier-section h3 b{font-size:12px}.dossier-section p{font-size:14px;line-height:1.9}.position-option{min-height:86px;padding:14px 12px}.position-option strong{font-size:15px}.position-option small{font-size:13px;line-height:1.7}
  .manual-item{padding:10px 6px;min-width:0;gap:4px}.manual-item svg{width:38px;height:44px}.manual-item strong{font-size:13px}.manual-item small{font-size:10px}.comparison-row{font-size:13px;grid-template-columns:45px 1fr 52px}.comparison-row>span:last-child{font-size:12px}
  .result-conclusion{padding:14px;margin:14px 0}.conclusion-heading{gap:8px;flex-wrap:wrap}.conclusion-heading h2{font-size:13px}.conclusion-status{font-size:11px}.result-conclusion p{font-size:15px;line-height:1.85}.market-score-detail{padding:0 12px;margin:12px 0 20px}.market-score-detail summary{min-height:48px;font-size:12px}.market-score-detail summary b{font-size:24px}.market-score-detail summary small,.score-toggle{font-size:11px}.assessment-grid{gap:6px;margin:12px 0}.assessment-grid>div{padding:10px 4px}.assessment-grid span{font-size:11px}.assessment-grid small{font-size:11px}.market-score-detail .assessment-grid{margin-bottom:12px}
  .restaurant-feedback-heading{align-items:flex-start;flex-wrap:wrap}.restaurant-feedback-heading h3{font-size:15px}.restaurant-feedback-heading>span{font-size:12px}.restaurant-review-list{gap:10px}.restaurant-review{padding:14px 12px;gap:9px}.restaurant-review-index{font-size:15px}.restaurant-review-heading strong{font-size:14px;line-height:1.7}.diner-profile{font-size:10px;margin-left:6px;padding:1px 5px}.restaurant-review-heading small{font-size:11px;line-height:1.7}.restaurant-review p{font-size:15px;line-height:1.8;margin-top:8px}.result-feedback{font-size:14px;line-height:1.85;margin-top:20px}.feedback-label{font-size:12px}.result-requirements{font-size:12px;padding:10px 12px}.result-requirements b{font-size:11px}.reasoning-detail{font-size:13px;padding:0 12px}.reasoning-detail summary{min-height:44px;display:flex;align-items:center}.reasoning-detail p{padding-bottom:12px}.result-coins{font-size:13px;line-height:1.8}.journal-row strong{font-size:13px}.journal-row small{font-size:11px}.journal-row>b{font-size:22px}.day-summary span{font-size:11px}
}
@media(max-width:365px){
  .topbar{padding-left:12px;padding-right:12px}.brand{font-size:13px}.brand small{font-size:7px;letter-spacing:.4px}.brand>span:first-child{width:29px;height:29px}.wallet{font-size:12px}.day-strip i{display:none}.shop-banner{margin:0 12px}.order-card{margin:0 12px}.mixing-station,.ingredient-section{padding-left:12px;padding-right:12px}.ingredient-grid{gap:6px}.ingredient-button{min-height:91px}.ingredient-art{width:44px;height:42px}.ingredient-button small{font-size:8px}.customer-info>span{font-size:10px}.brief-actions button{font-size:11px}.station-heading h2 span{font-size:9px}.action-panel{padding-left:12px;padding-right:12px}.serve-button{font-size:13px!important}.manual-grid{grid-template-columns:1fr}.manual-item small{font-size:12px}
}
@media(max-width:520px) and (max-height:780px){
  .banner-content{padding-top:6px;padding-bottom:8px}.shop-banner h1{font-size:25px}.banner-kicker{font-size:9px}.shop-banner p{font-size:10px}.mixing-station{padding-top:10px}.bowl-stage{height:86px}.bowl-stage>#bowl-art{width:220px}.ingredient-section{padding-top:12px}.ingredient-button{min-height:86px}.ingredient-art{height:40px}.flavor-panel{padding:10px}
}
