:root{--ink:#1b302b;--deep:#15382e;--green:#295544;--gold:#ddb672;--cream:#f8f5ee;--paper:#fffdf9;--line:#e5e5db;--muted:#74837c;--rust:#a9563b;--soft:#e9eee8;font-family:Inter,"Noto Sans SC","PingFang SC","Microsoft Yahei",sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}p{line-height:1.72}h1,h2,h3{line-height:1.18;margin:0;font-weight:700}h1,h2{letter-spacing:-.045em}h1{font-size:clamp(2.4rem,5vw,4.3rem)}h2{font-size:clamp(1.7rem,3vw,2.5rem)}h3{font-size:1.2rem}[hidden]{display:none!important}
.overline{font-size:.7rem;font-weight:800;letter-spacing:.16em;color:#dbcb9e}.overline.dark{color:#8a7655}.small{font-size:.79rem}.muted{color:var(--muted)}.btn{border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding:13px 18px;font-size:.88rem;font-weight:700;min-height:47px;transition:transform .18s,background .18s}.btn:hover{transform:translateY(-2px)}.btn-dark{background:var(--deep);color:white}.btn-light{background:#f8edd3;color:var(--deep)}.btn-outline{background:transparent;border-color:#aec2b5;color:var(--deep)}.btn.full{width:100%}.text-button{border:0;background:none;color:inherit;text-decoration:underline;text-underline-offset:4px}.brand,.entry-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.015em}.brand-mark{width:34px;height:34px;background:#e2c484;color:var(--deep);border-radius:10px;display:grid;place-items:center;font:700 21px serif;flex-shrink:0}
.entry{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr}.entry-story{background:radial-gradient(circle at 70% 72%,#37715a 0,#1b4838 38%,#13372d 82%);color:white;padding:clamp(32px,6vw,78px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.entry-story:after{content:"";position:absolute;width:360px;height:360px;right:-100px;top:-120px;border:1px solid #accbb83b;border-radius:50%;box-shadow:0 0 0 70px #accbb810,0 0 0 140px #accbb80c}.entry-brand em{font:700 10px sans-serif;color:#a7bfab;letter-spacing:.17em;font-style:normal}.entry-copy{position:relative;z-index:1;max-width:550px}.entry-copy h1{margin:28px 0;line-height:1.08;font-family:"Songti SC","Noto Serif SC",serif}.entry-copy i{font-style:normal;color:#e7c47e}.entry-copy p{font-size:1rem;color:#d5e0d5;max-width:430px}.entry-steps{display:flex;gap:20px;flex-wrap:wrap;margin-top:38px;font-size:.8rem;color:#e4cf9b}.story-footer{font-size:.78rem;color:#c4d6c8}.entry-form-wrap{display:grid;place-items:center;padding:48px 28px}.entry-form{width:min(100%,440px)}.entry-form h2{margin:15px 0;font-family:"Songti SC","Noto Serif SC",serif}.entry-form>p{color:var(--muted);margin-bottom:27px}.entry-form label:not(.inline){display:block;font-size:.82rem;font-weight:700;margin:25px 0 9px}.entry-form input,.code-form input:not([type="checkbox"]):not([type="radio"]),.quantity,.drawer input{width:100%;border:1px solid #d8ded4;border-radius:4px;background:#fff;padding:12px 13px;outline:none;color:var(--ink)}input:focus{border-color:var(--green);box-shadow:0 0 0 3px #65977a22}.entry-form>.btn{margin:18px 0 8px}.role-tabs{display:flex;border-bottom:1px solid var(--line);gap:22px}.role{padding:10px 0;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent}.role.active{border-bottom-color:var(--green);color:var(--deep);font-weight:700}
.topbar{height:76px;background:#fffefa;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.top-inner{max-width:1250px;margin:auto;height:100%;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand small{font-size:.63rem;color:var(--muted);display:block;font-weight:500}.nav{display:flex;gap:5px}.nav button{border:0;background:transparent;border-radius:5px;padding:11px 15px;color:#5d6d62;font-size:.86rem;white-space:nowrap}.nav button.active{background:var(--soft);color:var(--deep);font-weight:700}.account{display:flex;align-items:center;gap:15px;font-size:.78rem;color:#667971;white-space:nowrap}
.container{max-width:1250px;padding:0 30px;margin:auto}.welcome{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:65px 0 33px}.welcome h1{font-family:"Songti SC","Noto Serif SC",serif;margin:13px 0 8px}.welcome p{color:var(--muted);margin:0}.welcome-stamp{border-left:1px solid var(--line);padding-left:30px;display:grid;gap:3px;min-width:140px}.welcome-stamp span{font-size:2.3rem;font-weight:800;color:var(--green)}.welcome-stamp small{color:var(--muted)}
.featured{display:grid;grid-template-columns:1.25fr .75fr;min-height:285px;border-radius:9px;background:#204936;overflow:hidden;color:#fff;position:relative}.featured-copy{padding:37px 45px;z-index:1}.featured-copy h2{margin:16px 0 12px;font-family:"Songti SC","Noto Serif SC",serif}.featured-copy p{color:#d9e9dc;font-size:.87rem;max-width:520px;margin:0 0 18px}.featured-art{position:relative;background:radial-gradient(circle at center,#467659 3%,#2a553e 64%,#254e39 100%);overflow:hidden}.halo{position:absolute;inset:15% 17%;border:1px solid #bad0a26b;border-radius:50%;box-shadow:0 0 0 38px #cadcb00d,0 0 0 77px #cadcb00d}.glass{height:180px;width:105px;position:absolute;top:55px;left:50%;transform:translateX(-50%) rotate(7deg);border:3px solid #f4e0adcc;border-top:0;border-radius:2px 2px 22px 22px;background:#754529;box-shadow:14px 18px 36px #132b26a9}.glass-top{position:absolute;top:-3px;left:-5px;width:110px;border:5px solid #e3cea1;border-radius:50%;height:16px;background:#a0673d}.cream{height:64px;background:linear-gradient(#f3e2bc,#dbc7a2);border-radius:0 0 37% 16%;margin-top:9px}.coffee{height:88px;background:linear-gradient(#995b36,#633720);margin-top:5px}.glass-bottom{height:8px;background:#e4c9935e}.coaster{position:absolute;bottom:34px;left:25%;width:57%;height:14px;border-radius:50%;background:#c1ac7890}.scribble{position:absolute;right:26px;bottom:22px;color:#f0d99f;transform:rotate(-9deg);font:italic 18px Georgia,serif}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:49px 0 20px}.section-heading.space{margin-top:65px}.section-heading h2{margin:8px 0 0;font-family:"Songti SC","Noto Serif SC",serif}.section-heading p{margin:0;color:var(--muted);font-size:.85rem}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chips button{background:transparent;color:#567063;border:1px solid #d9e0d6;border-radius:30px;padding:8px 15px;font-size:.78rem}.chips button.active{background:var(--deep);border-color:var(--deep);color:white}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.recipe-card{min-height:171px;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:18px 21px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;transition:transform .2s,border-color .2s}.recipe-card:hover{transform:translateY(-3px);border-color:#9cb9a9}.recipe-card.locked{background:#f7f7f1;color:#56675e}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.badge{padding:5px 8px;border-radius:3px;background:#eaf1e8;color:#306148;font-size:.68rem;font-weight:700}.badge.locked{background:#e9e9e3;color:#83918a}.group{color:#9b8460;font-size:.69rem;font-weight:800;letter-spacing:.1em}.recipe-card h3{margin:16px 0 5px}.card-foot{display:flex;justify-content:space-between;color:#83918a;font-size:.76rem}.card-foot .arrow{font-size:1.1rem;color:var(--green)}.recipe-card.locked .arrow{color:#a4afa8}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.product-card{padding:20px;border-radius:7px;border:1px solid var(--line);background:#fffdfa}.product-card h3{margin:12px 0 7px}.product-card p{font-size:.76rem;color:var(--muted);margin:0 0 12px}.number{font-size:2rem;font-weight:800;color:var(--deep)}.number small{font-size:.75rem;font-weight:400;color:var(--muted)}.product-card .text-button{font-size:.77rem;color:var(--green);margin-top:8px}
.work-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin:14px 0 50px}.panel{background:#fffdfa;border:1px solid var(--line);border-radius:7px;padding:22px}.panel-title{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:17px}.panel-title h3{font-family:"Songti SC","Noto Serif SC",serif}.mix-line{display:grid;grid-template-columns:1fr 92px;align-items:center;gap:12px;margin:10px 0}.mix-line span{font-size:.83rem}.mix-line input{width:100%;border:1px solid var(--line);padding:8px 9px;border-radius:4px}.actions{display:flex;gap:9px;margin:17px 0 0}.result{font-size:.82rem;color:var(--deep);line-height:1.65}.result:not(:empty){background:#eef3ea;border-radius:4px;padding:12px 14px;margin-top:14px}.result .fail{color:#ad4f3d}.batch-row{border-bottom:1px solid var(--line);padding:11px 0;display:flex;justify-content:space-between;gap:15px;font-size:.8rem}.batch-row:last-child{border:0}.batch-row b{display:block;margin-bottom:5px}.batch-row small{color:var(--muted)}.batch-row>span{text-align:right;white-space:nowrap;color:var(--green)}.empty{padding:18px;color:var(--muted);font-size:.83rem}.admin-panel{margin-bottom:40px}.admin-panel h2{margin:8px 0}.code-form{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;align-items:end;gap:18px}.code-form>label{font-size:.79rem;font-weight:700}.code-form input:not([type="checkbox"]):not([type="radio"]){margin-top:8px}.code-form fieldset{border:0;padding:0;margin:0}.code-form legend{font-size:.79rem;font-weight:700;margin-bottom:8px}.grant-options{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.inline{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;margin-right:12px}.grant-options .inline{margin:0}.issued{background:#edf3e9;border:1px solid #bed3bc;border-radius:4px;padding:15px;margin:20px 0;overflow-wrap:anywhere}.issued code{font-size:1rem;font-weight:700}.code-row{display:grid;grid-template-columns:1fr 1.3fr .5fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:13px 0;font-size:.77rem}.code-row small{color:var(--muted)}.code-row button{font-size:.75rem;color:var(--rust);background:none;border:0;text-decoration:underline}footer{border-top:1px solid var(--line);padding:27px 0 38px;color:#83918b;font-size:.76rem;display:flex;justify-content:space-between;gap:12px}
.shade{position:fixed;inset:0;background:#16272099;z-index:30}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(670px,100vw);z-index:31;background:#fffefa;box-shadow:-18px 0 48px #102e2740;overflow-y:auto}.drawer-head{height:66px;padding:20px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fffefa;z-index:2}.close{border:0;background:none;color:var(--deep);font-size:2rem;line-height:1}.drawer-body{padding:29px 35px 60px}.drawer-body h2{font-family:"Songti SC","Noto Serif SC",serif;margin:15px 0}.drawer-body>p{font-size:.83rem;color:var(--muted)}.drawer-body .sep{height:1px;background:var(--line);margin:25px 0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:block;font-size:.77rem;font-weight:700}.field input{margin-top:7px;font-weight:400}.drawer .section-label{font-size:.8rem;font-weight:800;margin:20px 0 10px}.input-row{display:grid;grid-template-columns:1fr 90px 110px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #edf0e8;font-size:.78rem}.input-row input{padding:7px 8px}.input-row .unit{color:var(--muted)}.input-row .range{grid-column:2/4;color:var(--rust);font-size:.72rem}.input-row .price{grid-column:3}.input-row .name{line-height:1.35}.input-row .weight{font-weight:800}.input-row .hint{color:var(--muted);font-size:.72rem;font-weight:400}.sop{background:#f5f4ed;border-radius:6px;padding:18px 20px;margin:15px 0;line-height:1.78;font-size:.82rem}.sop h4{font-size:1rem;color:var(--deep);margin:18px 0 5px}.sop p{margin:8px 0}.sop table{width:100%;border-collapse:collapse;font-size:.75rem}.sop td,.sop th{padding:6px;border-bottom:1px solid #dce1d9;text-align:left}.sop>div{overflow-x:auto}.warning{padding:10px 13px;background:#fff3df;color:#815c29;font-size:.76rem;line-height:1.6;border-radius:4px;margin:13px 0}.status{padding:10px 12px;background:#eaf3eb;border-radius:4px;font-size:.79rem;margin:12px 0}.drawer .btn{margin-top:13px}.drawer .result{white-space:normal}
#toast{position:fixed;left:50%;top:17px;transform:translateX(-50%);background:var(--deep);color:white;padding:10px 17px;border-radius:5px;font-size:.83rem;z-index:99;display:none;max-width:90vw;box-shadow:0 10px 30px #193b2c47}#toast.visible{display:block}#toast.error{background:#a44b39}
.code-row button+button{margin-left:12px}.code-row+.grant-options{padding:12px;border-radius:5px;background:#eff3ed;margin-bottom:5px}.code-row+.grant-options+.btn{margin-bottom:18px}
@media(max-width:1000px){.nav button{padding:9px}.code-form{grid-template-columns:1fr 1fr}.recipe-grid,.product-grid{grid-template-columns:repeat(2,1fr)}.top-inner{gap:8px}}
@media(max-width:740px){.entry{grid-template-columns:1fr}.entry-story{min-height:370px;padding:31px}.entry-copy h1{font-size:2.6rem;margin:14px 0}.entry-steps{margin-top:16px}.story-footer{display:none}.entry-form-wrap{padding:42px 29px}.topbar{height:auto}.top-inner{padding:12px 18px;flex-wrap:wrap}.brand{order:0}.account{order:1}.nav{order:2;overflow-x:auto;width:100%;justify-content:flex-start}.nav button{padding:8px 12px}.container{padding:0 18px}.welcome{padding:38px 0 22px}.welcome h1{font-size:2.5rem}.welcome-stamp{display:none}.featured{grid-template-columns:1fr;min-height:0}.featured-copy{padding:28px}.featured-art{height:175px}.glass{transform:translateX(-50%) rotate(7deg) scale(.7);transform-origin:top;top:13px}.coaster{bottom:15px}.section-heading{margin:39px 0 17px}.section-heading p{display:none}.recipe-grid,.product-grid{grid-template-columns:1fr 1fr;gap:9px}.recipe-card{padding:15px;min-height:155px}.recipe-card h3{font-size:1rem}.product-card{padding:14px}.product-card h3{font-size:.93rem}.work-grid{grid-template-columns:1fr}.code-form{grid-template-columns:1fr}.code-row{grid-template-columns:1fr 1fr}.drawer-body{padding:22px 19px 40px}.input-row{grid-template-columns:1fr 76px 80px}.field-grid{grid-template-columns:1fr}footer{flex-direction:column}}
@media(max-width:420px){.recipe-grid,.product-grid{grid-template-columns:1fr}.account{gap:6px}.account span{max-width:85px;overflow:hidden;text-overflow:ellipsis}.nav button{font-size:.76rem}}
/* Add-on catalog uses the existing recipe studio palette with the brand yellow accent. */
body{background:#fffdf7} [hidden]{display:none!important} .brand-mark{background:#feae01;color:#04492d}
.featured{background:#04492d} .featured-copy .btn{background:#feae01;color:#04492d}
.account a{font-size:.78rem;white-space:nowrap} .nav{max-width:100%;overflow-x:auto}
.recipe-card{cursor:pointer} .recipe-card a{display:inline-block;margin-top:14px;color:#04492d}
.admin-panel select,.admin-panel input:not([type=checkbox]){width:100%;padding:11px;border:1px solid #d8ded4;border-radius:4px;background:white}
.admin-panel h3{margin-top:32px} .admin-panel fieldset{min-width:0} .code-row{align-items:center}
.drawer .input-row{grid-template-columns:minmax(0,1fr) auto;gap:16px}
.drawer .input-row .hint{grid-column:1/-1}.drawer .field{margin:15px 0}
.drawer .status{font-weight:650}.product-card .text-button{border:0;background:none;cursor:pointer}
#coffeeYieldSection[hidden]{display:none}.drawer select{width:100%;border:1px solid #d8ded4;border-radius:4px;background:#fff;padding:12px 13px;color:var(--ink)}
.grant-options .inline{align-items:flex-start;line-height:1.5}.grant-options .inline input{flex-shrink:0;margin-top:3px}.grant-options .inline.unavailable{opacity:.55}
@media(max-width:740px){.featured-art{display:none}.admin-panel .code-row{grid-template-columns:1fr}.account a{white-space:normal}}
@media(max-width:520px){.grant-options{grid-template-columns:1fr}}
.catalog-list{display:grid;gap:29px}.catalog-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:8px 0 15px}.catalog-section-title h3{font-family:"Songti SC","Noto Serif SC",serif;font-size:1.4rem}.catalog-section-title .small{white-space:nowrap}
.discover-section{margin-bottom:42px}.discover-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.discover-card{border:1px solid var(--line);border-radius:7px;background:#fffdfa;color:var(--ink);padding:22px;text-align:left;min-height:160px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.discover-card:hover{border-color:#8eaf9c;transform:translateY(-2px)}.discover-card h3{font-family:"Songti SC","Noto Serif SC",serif;margin-top:3px}.discover-card p{color:var(--muted);font-size:.78rem;margin:0}.discover-link{margin-top:auto;color:#04492d;font-weight:700;font-size:.78rem}
.admin-panel .code-form{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-panel .code-form fieldset,.admin-panel .code-form>button{grid-column:1/-1}.admin-panel .code-form>button{justify-self:start}.license-search{display:block;margin:16px 0 12px;font-size:.79rem;font-weight:700}.license-search input{display:block;max-width:380px;margin-top:8px}.license-person{display:grid;gap:5px}.license-person small{font-size:.77rem;color:var(--muted)}.code-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.code-actions button+button{margin-left:0}
@media(max-width:900px){.admin-panel .code-form{grid-template-columns:repeat(2,minmax(0,1fr))}.discover-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.admin-panel .code-form{grid-template-columns:1fr}.discover-grid{grid-template-columns:1fr}.catalog-section-title h3{font-size:1.2rem}}
.pho-heading{margin:28px 0 15px;color:var(--deep);font-family:"Songti SC","Noto Serif SC",serif}.pho-presets{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0 3px}.pho-preset{padding:8px 13px;border:1px solid #d8ded4;border-radius:5px;background:#fff;color:var(--green);font-size:.78rem;font-weight:700}.pho-preset:hover{background:var(--soft)}.pho-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:19px 0 14px}.pho-stat{padding:14px 15px;border:1px solid #e4e9dd;background:#f7f8f2;border-radius:5px;display:grid;gap:5px}.pho-stat small{color:var(--muted);font-size:.73rem}.pho-stat b{font-size:1.25rem;color:var(--deep)}.pho-ingredients{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 17px;margin-top:16px}.pho-ingredients h4{margin:12px 0;font-size:.93rem}.pho-ingredient{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 0;border-top:1px solid #edf0e8;font-size:.82rem}.pho-ingredient strong{color:var(--deep)}.pho-ingredient small{grid-column:1/-1;color:var(--muted);font-size:.72rem}.pho-watermark{font-size:.71rem;color:var(--muted);text-align:right}.pho-steps{display:grid;gap:9px}.pho-step{border:1px solid var(--line);border-radius:5px;background:#fff}.pho-step summary{cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px}.pho-step-no{font-size:.75rem;color:#a38a5e;font-weight:800}.pho-step summary b{font-size:.84rem}.pho-step summary small{margin-left:auto;color:var(--muted);font-size:.72rem}.pho-step-body{padding:0 15px 12px 43px;font-size:.79rem}.pho-step-body p{margin:5px 0}.pho-step-control{color:#736147}
.unified-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#04492d;color:#fff;padding:clamp(30px,6vw,80px);display:flex;flex-direction:column;justify-content:space-between;gap:50px}.login-story h1{font-family:"Songti SC","Noto Serif SC",serif;margin:20px 0}.login-story p{font-size:.95rem;color:#dce8dc}.login-story small{font-size:.73rem;color:#b9d1bf}.login-story .brand small{color:#b9d1bf}.login-pane{display:grid;place-items:center;padding:32px}.login-card{width:min(100%,410px)}.login-card h2{margin:16px 0;font-family:"Songti SC","Noto Serif SC",serif}.login-card p{color:var(--muted);font-size:.86rem}.login-card label{display:block;margin:28px 0 18px;font-size:.82rem;font-weight:700}.login-card input{display:block;width:100%;margin-top:9px;padding:13px 14px;border:1px solid #d8ded4;border-radius:4px}.login-card .btn{justify-content:center}.admin-login-link{display:inline-block;margin-top:10px;color:var(--green)}.logout-button{border:1px solid #d7e0d6;background:transparent;color:var(--green);border-radius:4px;padding:7px 10px;font-size:.76rem}.logout-button:hover{background:var(--soft)}
.featured-art{display:grid;place-items:center}.phin-illustration{display:block;width:100%;height:100%;max-height:290px;object-fit:contain}.featured-art .halo,.featured-art .glass,.featured-art .coaster,.featured-art .scribble{display:none}
.featured-copy h2{white-space:pre-line}.series-illustration{display:block;width:100%;height:100%;max-height:290px;object-fit:contain}.featured-art .phin-illustration[hidden],.featured-art .series-illustration[hidden],.featured-art[data-series="baguette"] .phin-illustration,.featured-art[data-series="pho"] .phin-illustration,.featured-art[data-series="coffee"] .series-illustration,.featured-art[data-series="baguette"] .pho-illustration,.featured-art[data-series="pho"] .baguette-illustration{display:none!important}
.license-code{display:flex;gap:5px;flex-wrap:wrap;font-size:.72rem;color:var(--muted)}.license-code code{color:var(--deep);font-weight:700;user-select:all;overflow-wrap:anywhere}.member-edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:17px;background:#f2f6ee;border:1px solid #dce7d8;border-radius:5px}.member-edit .field{margin:0}.member-edit input,.member-edit select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #d8ded4;border-radius:4px;background:#fff}.member-edit .btn{align-self:end;justify-content:center}
@media(max-width:740px){.unified-login{grid-template-columns:1fr}.login-story{min-height:240px;padding:30px;gap:25px}.login-story h1{font-size:2rem;margin:12px 0}.login-pane{padding:40px 24px}.featured-art{display:grid!important;height:175px}.phin-illustration{max-height:175px}.member-edit{grid-template-columns:repeat(2,minmax(0,1fr))}.account{margin-left:auto}}
@media(max-width:520px){.member-edit{grid-template-columns:1fr}.logout-button{white-space:nowrap}}
.locked-count{display:block;margin-top:6px;font-size:.76rem;color:var(--muted)}
.series-count{border:0;background:transparent;color:var(--green);font-size:.82rem;cursor:pointer;text-align:right;padding:5px 0}
.series-count:hover{text-decoration:underline}
.member-actions-menu{position:relative;display:inline-block;color:var(--green);font-size:.8rem}
.member-actions-menu>summary{cursor:pointer;text-decoration:underline;list-style:none;white-space:nowrap}
.member-actions-menu>summary::-webkit-details-marker{display:none}
.member-actions-body{position:absolute;right:0;top:100%;z-index:5;width:min(300px,85vw);padding:13px;display:grid;gap:10px;background:#fffefa;border:1px solid var(--line);box-shadow:0 10px 25px #102e2730;border-radius:6px;color:var(--ink)}
.member-actions-body .text-button{text-align:left;width:max-content}
.member-device-list{display:grid;gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.member-device-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem}
.activity-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.activity-panel summary{cursor:pointer;color:var(--green);font-weight:700}.activity-body{padding:12px 0;font-size:.79rem}.activity-row{padding:9px 0;border-top:1px solid var(--line)}.activity-alert{padding:9px 12px;background:#fff1e6;color:#904a25;border-radius:4px}.activity-ok{color:var(--green)}
.drawer-watermark-layer{position:fixed;top:66px;right:0;bottom:0;width:min(670px,100vw);z-index:4;pointer-events:none;overflow:hidden;display:flex;flex-direction:column;justify-content:space-around;align-items:center}.drawer-watermark-layer span{max-width:100%;font-size:clamp(13px,1.5vw,19px);font-weight:700;white-space:nowrap;color:#04492d;opacity:.10;transform:rotate(-24deg)}.buyer-watermark{margin:25px 0 0;padding:10px 0;border-top:1px solid var(--line);color:#738378;font-size:.72rem;overflow-wrap:anywhere}
@media(max-width:560px){.catalog-section-title{align-items:flex-start}.series-count{max-width:60%;font-size:.76rem}}
.coffee-upcoming{margin:23px 0 0;padding:14px 18px;border-left:3px solid #feae01;background:#f4f5ee;color:#496553;font-size:.83rem}
.pho-export{margin:26px 0 10px;padding-top:16px;border-top:1px solid var(--line)}
.pho-export p{margin:8px 0}
.pho-print-sheet{display:none}
.print-mark-layer{display:none}
/* 手机端：优先保证授权状态、换算输入和 SOP 在单手操作时可读。 */
@media screen and (max-width:740px){
  html{-webkit-text-size-adjust:100%}
  .topbar{z-index:20}
  .top-inner{gap:8px 10px;padding:9px 15px 7px}
  .brand{min-width:0}.brand small{font-size:.61rem}
  .account{margin-left:auto;gap:6px;max-width:45%}
  .account span{overflow:hidden;text-overflow:ellipsis;max-width:100px}
  .logout-button{min-height:40px;padding:7px 9px}
  .nav{gap:5px;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .nav::-webkit-scrollbar{display:none}
  .nav button{min-height:44px;scroll-snap-align:center;padding:9px 13px;font-size:.84rem}
  .container{padding:0 16px}
  .welcome{padding:27px 0 18px;flex-direction:column;align-items:stretch;gap:14px}
  .welcome h1{font-size:2rem;margin:9px 0 6px}
  .welcome p{font-size:.86rem}
  .welcome-stamp{display:flex;min-width:0;align-items:center;gap:8px;border-left:0;border-top:1px solid var(--line);padding:10px 0 0}
  .welcome-stamp span{font-size:1.15rem}
  .welcome-stamp small{font-size:.75rem}
  .welcome-stamp .locked-count{margin:0 0 0 auto;text-align:right;max-width:48%}
  .featured-copy{padding:22px 23px}.featured-copy h2{font-size:1.55rem;margin:12px 0 8px}
  .featured-copy p{font-size:.84rem}
  .featured-copy .btn{min-height:44px}
  .featured-art{height:145px!important}.featured-art .phin-illustration,.featured-art .series-illustration{max-height:140px}
  .section-heading{margin:31px 0 16px}.section-heading.space{margin-top:38px}
  .section-heading h2{font-size:1.55rem}
  .chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .chips::-webkit-scrollbar{display:none}.chips button{flex-shrink:0;min-height:42px}
  .recipe-grid,.product-grid,.discover-grid{grid-template-columns:1fr;gap:10px}
  .recipe-card{min-height:125px;padding:16px 18px}.recipe-card h3{font-size:1.13rem;margin:12px 0 8px}
  .product-card{padding:18px}.product-card h3{font-size:1.04rem}
  .catalog-section-title{align-items:flex-start;flex-direction:column;gap:5px}
  .series-count{max-width:100%;min-height:36px;text-align:left;padding:2px 0}
  .drawer{height:100vh;height:100dvh;width:100%;overscroll-behavior:contain}
  .drawer-head{height:60px;padding:9px 17px}.drawer-head .close{min-width:44px;min-height:44px}
  .drawer-body{padding:20px 17px calc(32px + env(safe-area-inset-bottom))}
  .drawer-body h2{font-size:1.72rem;line-height:1.3}
  .drawer-body>p{font-size:.85rem}
  .drawer input,.drawer select,.admin-panel input:not([type=checkbox]),.admin-panel select,.login-card input{font-size:16px;min-height:46px}
  .drawer .btn,.admin-panel .btn{min-height:46px}
  .drawer .input-row{font-size:.89rem;gap:10px;padding:11px 0}
  .drawer .input-row .weight{white-space:nowrap}
  .drawer .input-row .hint{font-size:.77rem;line-height:1.5}
  .sop{padding:16px;font-size:.89rem;line-height:1.8;overflow-wrap:anywhere}
  .sop table{table-layout:fixed;font-size:.82rem}
  .sop td,.sop th{overflow-wrap:anywhere;vertical-align:top;padding:8px 5px}
  .pho-presets button{min-height:44px}.pho-stats{gap:7px}.pho-stat{padding:11px}
  .pho-ingredient{font-size:.88rem}.pho-ingredient small{font-size:.77rem}
  .pho-step summary{min-height:50px;padding:12px}.pho-step-body{padding:0 13px 13px 38px;font-size:.88rem}
  .pho-step summary small{white-space:nowrap}
  .pho-export .btn{width:100%;justify-content:center}
  .drawer-watermark-layer{top:60px;width:100%}
  .admin-panel{padding:18px}.admin-panel .code-form{grid-template-columns:1fr}
  .admin-panel .code-form>button{width:100%;justify-content:center}
  .license-search input{max-width:none}
  .admin-panel .code-row{grid-template-columns:1fr;gap:8px;padding:18px 0}
  .code-actions{gap:4px 12px}.code-actions button,.member-actions-menu>summary{min-height:42px;display:inline-flex;align-items:center}
  .member-actions-menu[open]{width:100%}.member-actions-menu[open] .member-actions-body{position:static;width:100%;margin:6px 0}
  .member-edit{grid-template-columns:1fr}.member-edit .btn{width:100%;justify-content:center}
  .login-story{min-height:190px;padding:24px;gap:22px}.login-story h1{font-size:1.8rem}
  .login-pane{padding:28px 24px 40px}
}
@media screen and (max-width:360px){
  .top-inner{padding-inline:12px}.brand{font-size:.87rem}.account span{max-width:66px}
  .welcome-stamp .locked-count{max-width:43%}
  .featured-art{height:120px!important}.featured-art .series-illustration{max-height:115px}
}
@media print{
  @page{size:A4;margin:16mm 14mm}
  body>*:not(.pho-print-sheet){display:none!important}
  body>.pho-print-sheet{display:block!important;color:#172d25;background:white;font-family:"Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-size:10pt;line-height:1.55}
  .pho-print-sheet h1{font-size:20pt;margin:5px 0 10px}
  .pho-print-sheet h2{font-size:13pt;margin:22px 0 8px}
  .pho-print-sheet h3{font-size:10.5pt;margin:10px 0 3px}
  .pho-print-sheet p{margin:3px 0}
  .pho-print-sheet table{border-collapse:collapse;width:100%;font-size:9pt}
  .pho-print-sheet th,.pho-print-sheet td{border-bottom:1px solid #cbd5cb;padding:5px 8px;text-align:left;vertical-align:top}
  .pho-print-sheet th:last-child,.pho-print-sheet td:last-child{text-align:right;white-space:nowrap}
  .print-kicker{font-weight:700;color:#04492d}
  .print-step{break-inside:avoid}
  .print-watermark{border-top:1px solid #ccd5cf;margin-top:20px!important;padding-top:9px;color:#59665d;font-size:9pt}
  .print-mark-layer{display:flex!important;position:fixed;inset:0;z-index:5;pointer-events:none;flex-direction:column;justify-content:space-around;align-items:center;overflow:hidden}.print-mark-layer span{font-size:14pt;font-weight:700;color:#244636;opacity:.11;transform:rotate(-27deg);white-space:nowrap}
}
