.puyan-slim-wrap{max-width:760px;margin:32px auto;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Segoe UI",sans-serif;color:#191919}.puyan-slim-card{background:#fff;border:1px solid #eadfd6;border-radius:24px;padding:28px;box-shadow:0 12px 40px rgba(70,50,30,.08);overflow:hidden}.puyan-slim-card h2{margin:0 0 8px;font-size:28px;line-height:1.25}.puyan-subtitle{color:#77685f;margin:0 0 24px;font-size:17px;line-height:1.7}.puyan-question-shell{margin-bottom:18px}.puyan-bot-bubble{display:inline-block;max-width:100%;background:#f7eee8;border:1px solid #eadfd6;border-radius:20px 20px 20px 6px;padding:15px 18px;font-size:20px;font-weight:700;line-height:1.45;color:#2a211b}.puyan-step{display:block}.puyan-step>h3{display:none}.puyan-grid{display:block}.puyan-grid label,.puyan-consent,.puyan-question{display:none}.puyan-flow-item.is-current{display:block!important;animation:puyanFade .22s ease}.puyan-grid label,.puyan-question{border:1px solid #eadfd6;border-radius:20px;padding:20px;background:#fffdfb;box-shadow:0 8px 24px rgba(70,50,30,.05)}.puyan-grid label{font-size:0}.puyan-grid label::first-line{font-size:18px}.puyan-grid input,.puyan-grid select{display:block;width:100%;box-sizing:border-box;margin-top:12px;padding:15px 16px;border:1px solid #d7c8bd;border-radius:15px;font-size:18px;background:#fff;outline:none}.puyan-grid input:focus,.puyan-grid select:focus{border-color:#17856f;box-shadow:0 0 0 3px rgba(23,133,111,.12)}.puyan-question{margin:0}.puyan-question legend{display:none}.puyan-question label{display:block;margin:10px 0;background:#fff8f3;border:1px solid #f0dfd3;border-radius:15px;padding:14px 15px;font-size:17px;line-height:1.45;cursor:pointer;transition:all .15s ease}.puyan-question label:hover{background:#fff3eb;border-color:#dfc7b6}.puyan-question input[type="radio"],.puyan-question input[type="checkbox"]{margin-right:8px;transform:scale(1.12)}.puyan-question label:has(input:checked),.puyan-consent:has(input:checked){background:#e9f6f2;border-color:#17856f}.puyan-consent{border:1px solid #eadfd6;border-radius:20px;padding:18px;background:#fffdfb;font-size:17px;line-height:1.6;color:#6c5f55}.puyan-consent input{margin-right:8px}.puyan-conditional{display:none}.puyan-actions{display:flex;gap:12px;justify-content:space-between;margin-top:22px}.puyan-actions button{border:0;border-radius:999px;padding:13px 22px;cursor:pointer;font-size:16px;font-weight:700}.puyan-next,.puyan-submit{background:#17856f;color:#fff;margin-left:auto}.puyan-prev{background:#eee;color:#55483f}.puyan-prev:disabled{opacity:.45;cursor:not-allowed}.puyan-result{margin-top:24px;background:#fcf8f4;border-left:5px solid #17856f;padding:20px;border-radius:16px;line-height:1.75}.puyan-result h3{margin-top:20px}.puyan-soft-sell{background:#fff;border:1px dashed #d8bca8;border-radius:14px;padding:12px}.puyan-products{display:grid;gap:14px;margin-top:12px}.puyan-products h4{margin:18px 0 4px;color:#17856f}.puyan-product-card{background:#fff;border:1px solid #eadfd6;border-radius:16px;padding:16px;box-shadow:0 6px 18px rgba(70,50,30,.05)}.puyan-product-name{font-size:18px;font-weight:800;margin-bottom:2px}.puyan-product-role{font-size:13px;color:#8b6b55;margin-bottom:10px}.puyan-product-card p{margin:8px 0}.puyan-product-safety{background:#fff8f3;border-left:4px solid #d8a281;padding:8px 10px;border-radius:10px}@keyframes puyanFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.puyan-shake{animation:puyanShake .4s ease}@keyframes puyanShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}@media(max-width:640px){.puyan-slim-wrap{margin:16px auto}.puyan-slim-card{padding:20px;border-radius:18px}.puyan-slim-card h2{font-size:24px}.puyan-bot-bubble{font-size:18px}.puyan-actions button{width:50%;padding:13px 12px}.puyan-grid input,.puyan-grid select{font-size:16px}.puyan-question label{font-size:16px}}

.puyan-product-buy{margin-top:14px!important;}
.puyan-buy-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:999px;background:#111;color:#fff!important;text-decoration:none!important;font-weight:700;line-height:1.2;box-shadow:0 6px 16px rgba(0,0,0,.12);}
.puyan-buy-button:hover{filter:brightness(.92);transform:translateY(-1px);}

.puyan-result .puyan-report-page{display:none;animation:puyanFade .22s ease;}
.puyan-result .puyan-report-page.is-current{display:block;}
.puyan-result-actions{display:flex;gap:12px;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid #eadfd6;}
.puyan-result-actions button{border:0;border-radius:999px;padding:13px 22px;cursor:pointer;font-size:16px;font-weight:800;}
.puyan-result-prev{background:#eee;color:#55483f;}
.puyan-result-next{background:#17856f;color:#fff;margin-left:auto;}
.puyan-result-prev:disabled{opacity:.45;cursor:not-allowed;}
@media(max-width:640px){.puyan-result-actions button{width:50%;padding:13px 12px}}

/* v0.4.0 immersive cute-professional detective theme */
.puyan-slim-wrap{max-width:860px;margin:32px auto;padding:0 14px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Segoe UI",sans-serif;}
.puyan-slim-card{position:relative;background:radial-gradient(circle at 18% 10%,rgba(255,125,31,.28),transparent 24%),linear-gradient(135deg,#080808 0%,#151311 58%,#2a160c 100%);border:1px solid rgba(255,128,44,.42);border-radius:28px;padding:0;box-shadow:0 24px 72px rgba(0,0,0,.26);overflow:hidden;}
.puyan-slim-card:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:44px 44px;opacity:.45;pointer-events:none;}
.puyan-slim-card>*{position:relative;z-index:1;}
.puyan-hero{display:grid;grid-template-columns:1fr 160px;gap:16px;align-items:center;padding:30px 30px 20px;}
.puyan-kicker{display:inline-flex;width:max-content;margin-bottom:10px;padding:5px 10px;border:1px solid rgba(255,128,44,.65);border-radius:999px;color:#ff8a34;background:rgba(255,128,44,.12);font-size:12px;font-weight:900;letter-spacing:.09em;}
.puyan-hero h2,.puyan-slim-card h2{margin:0 0 12px;font-size:34px;line-height:1.18;font-weight:950;color:#fff;text-shadow:2px 2px 0 #000,0 0 18px rgba(255,128,44,.22);}
.puyan-subtitle{color:#f0ded1;margin:0;font-size:17px;line-height:1.8;max-width:620px;}
.puyan-hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.puyan-hero-tags span{background:#fff;color:#191919;border:2px solid #ff7d1f;border-radius:999px;padding:6px 11px;font-weight:900;font-size:13px;box-shadow:3px 3px 0 #000;}
.puyan-mascot{position:relative;width:142px;height:142px;margin-left:auto;border-radius:32px;background:linear-gradient(180deg,#fff,#ffe6d2);border:4px solid #ff7d1f;box-shadow:8px 8px 0 #000,0 0 30px rgba(255,128,44,.25);display:flex;align-items:center;justify-content:center;transform:rotate(2deg);}
.puyan-mascot-face{font-size:70px;filter:drop-shadow(0 8px 8px rgba(0,0,0,.18));}.puyan-mascot-badge{position:absolute;right:-10px;bottom:-10px;background:#ff7d1f;color:#fff;border:3px solid #000;border-radius:999px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-weight:950;box-shadow:3px 3px 0 #000;}
#puyan-ai-slim-form{padding:0 30px 30px;}.puyan-question-shell{margin:4px 0 20px}.puyan-bot-bubble{display:block;background:#fff;color:#161616;border:3px solid #ff7d1f;border-radius:22px 22px 22px 8px;padding:17px 19px;font-size:20px;font-weight:950;line-height:1.45;box-shadow:6px 6px 0 #000;}
.puyan-grid label,.puyan-question,.puyan-consent{background:rgba(255,255,255,.96);color:#151515;border:2px solid rgba(255,128,44,.62);border-radius:22px;padding:22px;box-shadow:7px 7px 0 rgba(0,0,0,.8);backdrop-filter:blur(4px);}
.puyan-grid input,.puyan-grid select{border:2px solid #e5cdbb;border-radius:16px;background:#fff;color:#111;}.puyan-grid input:focus,.puyan-grid select:focus{border-color:#ff7d1f;box-shadow:0 0 0 4px rgba(255,125,31,.16)}
.puyan-question label{background:#fff;border:2px solid #ead4c2;color:#171717;border-radius:16px;padding:15px 16px;font-size:17px;font-weight:760;box-shadow:0 5px 0 rgba(0,0,0,.08);}.puyan-question label:hover{background:#fff6ef;border-color:#ff7d1f;transform:translateY(-1px)}.puyan-question label:has(input:checked),.puyan-consent:has(input:checked){background:#fff0e2;border-color:#ff7d1f;box-shadow:0 0 0 4px rgba(255,125,31,.16),0 5px 0 rgba(0,0,0,.16)}
.puyan-actions{padding-bottom:2px}.puyan-actions button,.puyan-result-actions button,.puyan-reveal-life,.puyan-reveal-products{border:2px solid #000;border-radius:999px;padding:13px 22px;cursor:pointer;font-size:16px;font-weight:950;box-shadow:4px 4px 0 #000;transition:.15s ease;}.puyan-actions button:hover,.puyan-result-actions button:hover,.puyan-reveal-life:hover,.puyan-reveal-products:hover{transform:translateY(-1px)}.puyan-next,.puyan-submit,.puyan-result-next,.puyan-reveal-life,.puyan-reveal-products{background:#ff7d1f!important;color:#fff!important}.puyan-prev,.puyan-result-prev{background:#fff!important;color:#222!important}.puyan-prev:disabled,.puyan-result-prev:disabled{opacity:.45;box-shadow:2px 2px 0 #000;}
.puyan-result{margin:24px 30px 30px;background:rgba(255,255,255,.97);color:#151515;border:3px solid #ff7d1f;border-left:3px solid #ff7d1f;border-radius:24px;padding:22px;box-shadow:8px 8px 0 #000;line-height:1.78}.puyan-result h3{font-size:24px;margin:10px 0 12px;color:#121212}.puyan-result-hero{display:flex;align-items:center;gap:10px;background:#111;color:#fff;border-radius:18px;padding:10px 13px;width:max-content;max-width:100%;border:2px solid #ff7d1f;box-shadow:3px 3px 0 #000}.puyan-result-hero span{font-size:24px}.puyan-result-hero strong{font-size:14px;letter-spacing:.04em}.puyan-soft-sell{background:#fff8f0;border:2px dashed #e5b58e;border-radius:16px;padding:13px}.puyan-life-detail,.puyan-product-gate{margin-top:16px}.puyan-products{display:grid;gap:16px;margin-top:15px}.puyan-products h4{color:#ff7d1f;text-shadow:1px 1px 0 #000}.puyan-product-card{background:#fff;border:2px solid #f1d4bd;border-radius:20px;padding:18px;box-shadow:5px 5px 0 rgba(0,0,0,.12)}.puyan-product-name{font-size:20px;font-weight:950}.puyan-product-role{font-size:13px;color:#8a4b1e;font-weight:800}.puyan-product-safety{background:#fff5ec;border-left:6px solid #ff7d1f;border-radius:12px;padding:10px 12px}.puyan-buy-button{background:#111!important;border:2px solid #ff7d1f;color:#fff!important;box-shadow:4px 4px 0 #ff7d1f;}
@media(max-width:640px){.puyan-slim-wrap{margin:12px auto;padding:0 10px}.puyan-hero{grid-template-columns:1fr;padding:22px 18px 12px}.puyan-mascot{width:104px;height:104px;margin:8px auto 0}.puyan-mascot-face{font-size:52px}.puyan-hero h2,.puyan-slim-card h2{font-size:28px}#puyan-ai-slim-form{padding:0 18px 22px}.puyan-result{margin:20px 18px 24px}.puyan-bot-bubble{font-size:18px}.puyan-actions button,.puyan-result-actions button{width:50%;padding:13px 10px}.puyan-hero-tags span{font-size:12px}}

/* v0.4.3: robust reveal panels */
.puyan-life-detail.is-open,.puyan-product-gate.is-open{display:block!important;}


/* v0.5.0 cinematic full-bleed immersive overrides */
.puyan-slim-wrap{
  position:relative;
  width:100vw;
  max-width:100vw;
  margin:0!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0;
  overflow:clip;
  color:#fff;
}
.puyan-slim-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 10% 12%, rgba(255,136,53,.30), transparent 22%),
    radial-gradient(circle at 86% 8%, rgba(255,255,255,.08), transparent 14%),
    radial-gradient(circle at 80% 70%, rgba(255,127,39,.22), transparent 20%),
    radial-gradient(circle at 18% 84%, rgba(34,211,238,.09), transparent 18%),
    linear-gradient(180deg,#050505 0%,#0a0a0b 34%,#14110f 70%,#1a120d 100%);
  z-index:0;
}
.puyan-slim-card{
  position:relative;
  z-index:1;
  width:100%;
  max-width:none;
  min-height:100svh;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-top:0;
  background:transparent;
  box-shadow:none;
}
.puyan-slim-card::before{
  background-image:
    linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);
  background-size:56px 56px;
  opacity:.28;
}
.puyan-slim-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0) 20%,rgba(255,255,255,.015) 70%,rgba(255,255,255,.03));
  z-index:0;
}
.puyan-hero,
#puyan-ai-slim-form,
.puyan-result{max-width:1120px; margin-left:auto; margin-right:auto;}
.puyan-hero{padding:72px 64px 28px; gap:28px; grid-template-columns:minmax(0,1fr) 220px;}
.puyan-kicker{font-size:13px; letter-spacing:.12em; padding:6px 12px;}
.puyan-hero h2,
.puyan-slim-card h2{font-size:clamp(42px,6vw,84px); line-height:1.03; letter-spacing:.01em; margin-bottom:18px;}
.puyan-subtitle{font-size:clamp(19px,2vw,25px); line-height:1.7; max-width:820px; color:#f8eee8;}
.puyan-hero-tags{margin-top:18px; gap:10px;}
.puyan-hero-tags span{font-size:14px; padding:8px 13px;}
.puyan-mascot{width:194px; height:194px; border-radius:44px; transform:rotate(3deg) translateY(8px);}
.puyan-mascot-face{font-size:104px;}
.puyan-mascot-badge{width:54px; height:54px; font-size:18px;}
#puyan-ai-slim-form{padding:0 64px 64px;}
.puyan-question-shell{margin-bottom:22px;}
.puyan-bot-bubble{
  max-width:900px;
  font-size:clamp(28px,3vw,38px);
  line-height:1.35;
  padding:22px 26px;
  border-radius:28px 28px 28px 10px;
  box-shadow:10px 10px 0 #000, 0 18px 38px rgba(255,125,31,.14);
}
.puyan-grid label,.puyan-question,.puyan-consent{
  max-width:980px;
  padding:28px;
  border-radius:26px;
  box-shadow:10px 10px 0 rgba(0,0,0,.82), 0 20px 40px rgba(0,0,0,.12);
}
.puyan-grid label::first-line{font-size:24px; font-weight:900;}
.puyan-grid input,.puyan-grid select{margin-top:14px; padding:18px 18px; font-size:20px;}
.puyan-question label{padding:18px 18px; font-size:20px; line-height:1.5; margin:12px 0; border-radius:18px; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;}
.puyan-question label:hover{transform:translateY(-2px); box-shadow:0 10px 20px rgba(255,125,31,.12);} 
.puyan-consent{font-size:20px; line-height:1.7; color:#302722;}
.puyan-actions{max-width:980px; gap:16px; margin-top:28px;}
.puyan-actions button,.puyan-result-actions button,.puyan-reveal-life,.puyan-reveal-products,.puyan-buy-button{
  font-size:18px; padding:15px 28px; box-shadow:5px 5px 0 #000;
}
.puyan-result{
  margin:10px auto 0;
  max-width:1120px;
  padding:34px;
  border-radius:32px;
  box-shadow:12px 12px 0 #000, 0 24px 60px rgba(0,0,0,.18);
}
.puyan-result h3{font-size:clamp(28px,3vw,42px); margin:0 0 14px;}
.puyan-result p,.puyan-result li{font-size:20px; line-height:1.9;}
.puyan-result-hero{margin-bottom:18px;}
.puyan-result .puyan-report-page{padding:6px 2px;}
.puyan-soft-sell,.puyan-life-detail,.puyan-product-gate{
  border-radius:22px;
  padding:18px;
  background:linear-gradient(180deg,#fff7ef,#fffdfb);
}
.puyan-products{gap:18px;}
.puyan-products h4{font-size:26px; margin:26px 0 8px; color:#121212;}
.puyan-product-card{padding:20px; border-radius:22px; border-width:2px; box-shadow:0 10px 20px rgba(0,0,0,.08);}
.puyan-product-name{font-size:24px;}
.puyan-product-role{font-size:15px;}
.puyan-product-card p{font-size:18px; line-height:1.8;}
.puyan-product-safety{font-size:16px;}
.puyan-buy-button{background:linear-gradient(135deg,#ff8b2e,#ff6a00)!important; color:#fff!important;}
.puyan-flow-item.is-current,
.puyan-result .puyan-report-page.is-current,
.puyan-life-detail.is-open,
.puyan-product-gate.is-open{
  animation:puyanFlyIn .55s cubic-bezier(.2,.8,.2,1);
}
.puyan-question label,
.puyan-grid label,
.puyan-consent,
.puyan-bot-bubble,
.puyan-product-card,
.puyan-result,
.puyan-mascot,
.puyan-hero-tags span{
  will-change:transform,opacity,filter;
}
@keyframes puyanFlyIn{
  0%{opacity:0; transform:translateY(36px) scale(.985); filter:blur(10px);} 
  65%{opacity:1; transform:translateY(-2px) scale(1.002); filter:blur(0);} 
  100%{opacity:1; transform:translateY(0) scale(1); filter:blur(0);} 
}
@keyframes puyanFloat{
  0%,100%{transform:rotate(3deg) translateY(8px);} 
  50%{transform:rotate(1deg) translateY(0);} 
}
.puyan-mascot{animation:puyanFloat 4.2s ease-in-out infinite;}
.puyan-reveal-life,.puyan-reveal-products{margin-top:6px;}
@media (max-width: 960px){
  .puyan-hero{grid-template-columns:1fr; padding:56px 24px 22px;}
  .puyan-mascot{margin:8px 0 0; width:160px; height:160px;}
  #puyan-ai-slim-form{padding:0 24px 40px;}
  .puyan-bot-bubble{font-size:24px;}
  .puyan-grid label::first-line{font-size:20px;}
  .puyan-grid input,.puyan-grid select,.puyan-question label,.puyan-consent,.puyan-result p,.puyan-result li{font-size:18px;}
  .puyan-result{margin:6px 16px 0; padding:22px;}
}
@media (max-width: 640px){
  .puyan-hero{padding:44px 16px 18px;}
  .puyan-hero h2,.puyan-slim-card h2{font-size:clamp(34px,11vw,48px);} 
  .puyan-subtitle{font-size:17px;}
  #puyan-ai-slim-form{padding:0 16px 30px;}
  .puyan-bot-bubble{font-size:22px; padding:18px 16px; box-shadow:6px 6px 0 #000;}
  .puyan-grid label,.puyan-question,.puyan-consent{padding:18px; box-shadow:6px 6px 0 rgba(0,0,0,.82);} 
  .puyan-grid input,.puyan-grid select{font-size:17px;}
  .puyan-question label{font-size:17px; padding:15px 14px;}
  .puyan-consent{font-size:17px;}
  .puyan-actions button,.puyan-result-actions button,.puyan-reveal-life,.puyan-reveal-products,.puyan-buy-button{font-size:16px; padding:14px 18px;}
  .puyan-result h3{font-size:28px;}
  .puyan-product-name{font-size:21px;}
  .puyan-product-card p,.puyan-result p,.puyan-result li{font-size:17px; line-height:1.8;}
}


/* v0.5.4 stability fixes — keep v0.5.0 palette, fix hidden + submit */
html body #puyan-ai-slim-result[hidden],
html body .puyan-result[hidden],
html body .puyan-product-gate[hidden],
html body .puyan-life-detail[hidden],
html body .puyan-submit[hidden],
html body .puyan-next[hidden],
html body .puyan-prev[hidden],
html body .puyan-actions button[hidden]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
html body .puyan-submit:not([hidden]),
html body .puyan-next:not([hidden]),
html body .puyan-prev:not([hidden]){
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  z-index:5!important;
}
html body #puyan-ai-slim-form{
  min-height:0!important;
  height:auto!important;
  justify-content:flex-start!important;
}
html body .puyan-result:not([hidden]){
  display:block!important;
}
html body .puyan-grid label,
html body .puyan-question,
html body .puyan-consent,
html body .puyan-flow-item.is-current{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
}
html body .puyan-actions{
  position:relative!important;
  z-index:10!important;
  align-items:center!important;
  min-height:0!important;
  pointer-events:auto!important;
}
html body .puyan-actions button{
  cursor:pointer!important;
  user-select:none!important;
}
html body .puyan-actions button:disabled{
  cursor:not-allowed!important;
}
html body .puyan-slim-wrap p:empty{display:none!important;}


/* v0.6.0 LINE login gate and safety handoff */
.puyan-line-gate{
  position:relative;
  z-index:1;
  max-width:820px;
  margin:8px auto 56px;
  padding:30px;
  border:3px solid #ff7d1f;
  border-radius:28px;
  background:rgba(255,255,255,.96);
  color:#151515;
  box-shadow:8px 8px 0 #000,0 24px 56px rgba(0,0,0,.22);
  line-height:1.8;
}
.puyan-line-gate h3{margin:14px 0 10px;font-size:30px;line-height:1.3;color:#111;}
.puyan-line-login-button,
.puyan-line-handoff{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:16px;
  padding:14px 24px;
  border:2px solid #000;
  border-radius:999px;
  background:#06c755!important;
  color:#fff!important;
  text-decoration:none!important;
  font-size:18px;
  font-weight:950;
  box-shadow:5px 5px 0 #000;
  transition:transform .15s ease,filter .15s ease;
}
.puyan-line-login-button:hover,
.puyan-line-handoff:hover{transform:translateY(-1px);filter:brightness(.96);}
.puyan-line-warning{background:#fff3e8;border-left:5px solid #ff7d1f;border-radius:14px;padding:12px 14px;font-weight:800;}
.puyan-line-callback code{display:inline-block;max-width:100%;white-space:normal;word-break:break-all;background:#111;color:#fff;padding:6px 8px;border-radius:8px;}
.puyan-line-user{
  max-width:820px;
  margin:0 auto 20px;
  padding:14px 18px;
  border:2px solid rgba(255,125,31,.55);
  border-radius:20px;
  background:rgba(255,255,255,.95);
  color:#151515;
  display:flex;
  align-items:center;
  gap:12px;
  box-shadow:5px 5px 0 rgba(0,0,0,.75);
}
.puyan-line-user img{width:44px;height:44px;border-radius:999px;border:2px solid #ff7d1f;object-fit:cover;}
.puyan-line-user strong{display:block;font-size:14px;color:#0b7d3b;}
.puyan-line-user span{display:block;font-size:18px;font-weight:900;}
.puyan-line-handoff{background:#06c755!important;}
@media(max-width:640px){.puyan-line-gate{margin:0 16px 32px;padding:22px}.puyan-line-gate h3{font-size:24px}.puyan-line-login-button,.puyan-line-handoff{width:100%;font-size:16px}.puyan-line-user{margin:0 16px 18px}}


/* v0.6.2 typewriter effect */
.puyan-typing-cursor::after,
.puyan-typing-active h3:last-child::after{
  content:"▋";
  display:inline-block;
  margin-left:3px;
  color:#ff7d1f;
  animation:puyanBlinkCursor .8s steps(1) infinite;
}
.puyan-typing-active::after{
  content:"▋";
  display:inline-block;
  margin-left:4px;
  color:#ff7d1f;
  animation:puyanBlinkCursor .8s steps(1) infinite;
}
@keyframes puyanBlinkCursor{50%{opacity:0}}
@media (prefers-reduced-motion: reduce){.puyan-typing-cursor::after,.puyan-typing-active::after{display:none!important}}


/* v0.6.3 slower, more elegant typing rhythm */
.puyan-typing-cursor::after,
.puyan-typing-active::after{
  color:#ff9a4a;
  opacity:.86;
  text-shadow:0 0 10px rgba(255,125,31,.35);
  animation:puyanBlinkCursor 1.05s steps(1) infinite;
}


/* v0.6.5 extra-slow graceful typing */
.puyan-typing-cursor::after,
.puyan-typing-active::after{
  animation:puyanBlinkCursor 1.25s steps(1) infinite;
}


/* v0.6.6 cute speaking mascot UI */
.puyan-chat-guide,
.puyan-report-talk{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.puyan-chat-guide{max-width:980px;}
.puyan-report-talk{margin-top:14px;}
.puyan-report-bubble{
  background:linear-gradient(180deg,#fffefb 0%,#fff5eb 100%);
  border:2px solid rgba(255,151,79,.7);
  border-radius:26px 26px 26px 10px;
  padding:18px 20px;
  box-shadow:8px 8px 0 rgba(0,0,0,.18);
}
.puyan-report-bubble h3{margin-top:0!important;}
.puyan-mascot{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  box-shadow:none;
  transform:none;
}
.puyan-mascot-shell{
  position:relative;
  width:100%;
  height:100%;
  border-radius:30px;
  background:linear-gradient(180deg,#fff8ef,#ffe0bf);
  border:4px solid #ff8a2a;
  box-shadow:8px 8px 0 #000, 0 16px 26px rgba(255,138,42,.20);
}
.puyan-mascot-faceplate{
  position:absolute;
  left:50%; top:50%;
  width:62%; height:54%;
  transform:translate(-50%,-38%);
  background:#ffffff;
  border-radius:28px;
  border:3px solid #111;
}
.puyan-mascot-ear{
  position:absolute;
  top:11px;
  width:22px; height:22px;
  background:#ffd2a3;
  border:3px solid #111;
  border-radius:50% 50% 44% 44%;
}
.puyan-mascot-ear.is-left{left:20px; transform:rotate(-14deg);}
.puyan-mascot-ear.is-right{right:20px; transform:rotate(14deg);}
.puyan-mascot-eye{
  position:absolute; top:40%;
  width:10px; height:14px;
  background:#111; border-radius:999px;
}
.puyan-mascot-eye.is-left{left:32%;}
.puyan-mascot-eye.is-right{right:32%;}
.puyan-mascot-mouth{
  position:absolute;
  left:50%; bottom:20%;
  width:18px; height:10px;
  transform:translateX(-50%);
  border-bottom:4px solid #111;
  border-radius:0 0 18px 18px;
}
.puyan-mascot-blush{
  position:absolute; top:58%;
  width:14px; height:8px;
  background:rgba(255,153,163,.65);
  border-radius:999px;
  filter:blur(.3px);
}
.puyan-mascot-blush.is-left{left:16%;}
.puyan-mascot-blush.is-right{right:16%;}
.puyan-mascot-badge{
  right:-8px; bottom:-6px;
  background:#ff8a2a;
  color:#fff; border:3px solid #111;
  box-shadow:3px 3px 0 #000;
}
.puyan-mascot-hero{width:180px; height:180px; margin-left:auto; animation:puyanMascotFloat 4.2s ease-in-out infinite;}
.puyan-mascot-mini{width:72px; height:72px; align-self:start; margin-top:4px;}
.puyan-mascot-mini .puyan-mascot-shell{border-width:3px; border-radius:22px; box-shadow:5px 5px 0 #000, 0 10px 16px rgba(255,138,42,.16);}
.puyan-mascot-mini .puyan-mascot-faceplate{border-width:2px;}
.puyan-mascot-mini .puyan-mascot-ear{width:16px; height:16px; border-width:2px; top:8px;}
.puyan-mascot-mini .puyan-mascot-ear.is-left{left:13px;}
.puyan-mascot-mini .puyan-mascot-ear.is-right{right:13px;}
.puyan-mascot-mini .puyan-mascot-eye{width:7px;height:10px;}
.puyan-mascot-mini .puyan-mascot-mouth{width:13px;height:7px;border-bottom-width:3px;}
.puyan-mascot-mini .puyan-mascot-blush{width:10px;height:6px;}
.puyan-mascot-mini .puyan-mascot-badge{width:34px;height:34px;font-size:12px;right:-8px;bottom:-8px;}
.puyan-chat-guide .puyan-bot-bubble{margin-top:6px; position:relative;}
.puyan-chat-guide .puyan-bot-bubble::before,
.puyan-report-bubble::before{
  content:"";
  position:absolute;
  left:-12px; top:20px;
  width:18px; height:18px;
  background:inherit;
  border-left:2px solid rgba(255,151,79,.7);
  border-bottom:2px solid rgba(255,151,79,.7);
  transform:rotate(45deg);
  border-bottom-left-radius:6px;
}
.puyan-chat-guide .puyan-bot-bubble::before{background:#fff; border-left-color:#ff7d1f; border-bottom-color:#ff7d1f;}
.puyan-chat-guide.is-speaking .puyan-mascot-mouth,
.puyan-report-talk.is-speaking .puyan-mascot-mouth{
  animation:puyanTalk .42s ease-in-out infinite;
}
.puyan-chat-guide.is-speaking .puyan-mascot-shell,
.puyan-report-talk.is-speaking .puyan-mascot-shell{
  animation:puyanSpeakBob .9s ease-in-out infinite;
}
@keyframes puyanTalk{
  0%,100%{transform:translateX(-50%) scaleX(1) scaleY(1);} 
  50%{transform:translateX(-50%) scaleX(1.18) scaleY(1.55);} 
}
@keyframes puyanSpeakBob{
  0%,100%{transform:translateY(0);} 
  50%{transform:translateY(-3px);} 
}
@keyframes puyanMascotFloat{
  0%,100%{transform:translateY(0) rotate(0deg);} 
  50%{transform:translateY(-5px) rotate(-1deg);} 
}
.puyan-line-gate{
  max-width:980px;
  margin:0 auto 24px;
}
.puyan-line-gate h3,
.puyan-line-gate p{max-width:780px;}
@media(max-width:760px){
  .puyan-chat-guide,
  .puyan-report-talk{grid-template-columns:64px minmax(0,1fr); gap:12px;}
  .puyan-mascot-hero{width:144px; height:144px;}
  .puyan-mascot-mini{width:56px;height:56px;}
  .puyan-report-bubble{padding:15px 16px;}
}
@media(max-width:640px){
  .puyan-chat-guide,
  .puyan-report-talk{grid-template-columns:52px minmax(0,1fr); gap:10px;}
  .puyan-mascot-hero{width:124px;height:124px;margin:8px auto 0;}
  .puyan-mascot-mini{width:48px;height:48px;}
  .puyan-chat-guide .puyan-bot-bubble,
  .puyan-report-bubble{border-radius:20px 20px 20px 8px;}
  .puyan-chat-guide .puyan-bot-bubble::before,
  .puyan-report-bubble::before{top:14px; left:-9px; width:14px; height:14px;}
}

/* v0.7.0 member report archive */
.puyan-report-archive{max-width:980px;margin:0 auto;padding:32px;color:#fff;}
.puyan-report-archive h2{font-size:clamp(32px,4vw,56px);margin:0 0 22px;color:#fff;text-shadow:2px 2px 0 #000;}
.puyan-archive-item{background:rgba(255,255,255,.96);color:#161616;border:2px solid #ff8a2a;border-radius:20px;margin:14px 0;padding:0;box-shadow:6px 6px 0 #000;overflow:hidden;}
.puyan-archive-item summary{cursor:pointer;padding:18px 20px;font-size:18px;font-weight:800;background:linear-gradient(180deg,#fff8ef,#fff);}
.puyan-archive-meta{padding:0 20px 10px;}
.puyan-archive-report{padding:16px 20px 22px;border-top:1px solid #f1d2ba;background:#fff;}
.puyan-archive-report .puyan-report-page{display:block!important;margin-bottom:18px;}
@media(max-width:640px){.puyan-report-archive{padding:20px 14px}.puyan-archive-item summary{font-size:16px}}

/* v0.7.2 LINE profile prefill */
.puyan-profile-prefill{
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 18px;
  padding:14px 16px;
  border-radius:20px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,125,31,.28);
  box-shadow:0 14px 35px rgba(0,0,0,.08);
}
.puyan-profile-prefill img{
  width:58px;
  height:58px;
  border-radius:999px;
  object-fit:cover;
  border:3px solid #ff7d1f;
  box-shadow:0 8px 18px rgba(255,125,31,.22);
}
.puyan-profile-prefill strong{display:block;font-size:18px;color:#111;font-weight:950;}
.puyan-profile-prefill span{display:block;font-size:14px;color:#555;line-height:1.55;font-weight:700;}
.puyan-archive-user{margin:8px 0 24px;}
@media(max-width:640px){.puyan-profile-prefill{align-items:flex-start}.puyan-profile-prefill img{width:50px;height:50px}}

/* v1.1.2 polished mobile recipe application */
.puyan-recipe-app{--pr-blue:#397dd1;--pr-blue-dark:#245d9f;--pr-blue-soft:#edf5ff;--pr-bg:#f5f7fa;--pr-line:#e5eaf0;--pr-text:#202833;--pr-muted:#687382;box-sizing:border-box!important;width:100%!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif!important;color:var(--pr-text)!important;padding:24px 12px!important;background:transparent!important}
.puyan-recipe-app *{box-sizing:border-box!important}
.puyan-recipe-shell{width:100%!important;max-width:640px!important;margin:0 auto!important;padding:16px!important;border-radius:28px!important;background:var(--pr-bg)!important;border:1px solid #edf0f4!important}
.puyan-recipe-card,.puyan-recipe-cta-card{display:block!important;width:100%!important;background:#fff!important;border:1px solid var(--pr-line)!important;border-radius:22px!important;padding:24px!important;margin:0 0 16px!important;box-shadow:0 10px 28px rgba(34,54,75,.07)!important}
.puyan-recipe-eyebrow{font-size:13px!important;line-height:1.3!important;font-weight:800!important;letter-spacing:.08em!important;color:var(--pr-blue)!important;text-transform:uppercase!important;margin:0 0 8px!important}
.puyan-bmr-card h2,.puyan-meal-card h2,.puyan-recipe-cta-card h2{font-size:23px!important;line-height:1.35!important;font-weight:850!important;color:var(--pr-text)!important;margin:0!important;padding:0!important}
.puyan-bmr-number{display:flex!important;align-items:baseline!important;gap:8px!important;margin:8px 0 15px!important}
.puyan-bmr-number strong{font-size:44px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.04em!important;color:var(--pr-blue-dark)!important}
.puyan-bmr-number span{font-size:17px!important;font-weight:750!important;color:var(--pr-muted)!important}
.puyan-bmr-card p,.puyan-recipe-cta-card p{font-size:15px!important;line-height:1.8!important;color:var(--pr-muted)!important;margin:0 0 18px!important}
.puyan-recipe-recommendation{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:14px 16px!important;border-radius:15px!important;background:var(--pr-blue-soft)!important;border:1px solid #d9eaff!important}
.puyan-recipe-recommendation span{font-size:14px!important;color:#65778b!important;font-weight:700!important}
.puyan-recipe-recommendation strong{font-size:16px!important;color:var(--pr-blue-dark)!important;font-weight:850!important}
.puyan-recipe-section-head{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;margin:0 0 18px!important}
.puyan-recipe-mode-tabs{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;padding:4px!important;margin:0 0 16px!important;border:0!important;border-radius:15px!important;background:#e8edf3!important;overflow:visible!important}
.puyan-recipe-mode-tabs button{appearance:none!important;-webkit-appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:11px!important;background:transparent!important;color:#66717e!important;font-size:16px!important;line-height:1.2!important;font-weight:800!important;box-shadow:none!important;cursor:pointer!important;transition:.2s ease!important}
.puyan-recipe-mode-tabs button+button{border-left:0!important}
.puyan-recipe-mode-tabs button.is-active{background:#fff!important;color:var(--pr-blue-dark)!important;box-shadow:0 3px 10px rgba(30,50,70,.10)!important}
.puyan-recipe-day-tabs{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;width:100%!important;margin:0 0 16px!important}
.puyan-recipe-day-tabs button{appearance:none!important;-webkit-appearance:none!important;min-height:40px!important;margin:0!important;padding:9px 6px!important;border:1px solid var(--pr-line)!important;border-radius:12px!important;background:#fff!important;color:#798492!important;font-size:14px!important;line-height:1.2!important;font-weight:800!important;box-shadow:none!important;cursor:pointer!important}
.puyan-recipe-day-tabs button.is-active{background:var(--pr-blue)!important;border-color:var(--pr-blue)!important;color:#fff!important;box-shadow:0 5px 14px rgba(57,125,209,.22)!important}
.puyan-recipe-panel[hidden]{display:none!important}
.puyan-recipe-panel.is-active{display:block!important;animation:puyanRecipeFade .2s ease-out!important}
.puyan-meal-box{display:flex!important;align-items:flex-start!important;gap:13px!important;width:100%!important;padding:16px!important;margin:0 0 10px!important;border:1px solid var(--pr-line)!important;border-radius:16px!important;background:#fff!important;box-shadow:0 3px 12px rgba(31,47,64,.035)!important}
.puyan-meal-icon{display:flex!important;flex:0 0 38px!important;align-items:center!important;justify-content:center!important;width:38px!important;height:38px!important;border-radius:12px!important;background:var(--pr-blue-soft)!important;font-size:18px!important}
.puyan-meal-content{min-width:0!important;flex:1 1 auto!important}
.puyan-meal-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin:0 0 6px!important}
.puyan-meal-heading strong{font-size:16px!important;color:var(--pr-text)!important;font-weight:850!important}
.puyan-meal-heading span{font-size:13px!important;color:var(--pr-blue-dark)!important;font-weight:750!important;white-space:nowrap!important}
.puyan-meal-items{font-size:15px!important;line-height:1.65!important;font-weight:550!important;color:#586575!important;word-break:break-word!important}
.puyan-recipe-tip{display:block!important;width:100%!important;margin:14px 0 0!important;border:1px solid #d8e8fb!important;border-radius:15px!important;background:var(--pr-blue-soft)!important;overflow:hidden!important}
.puyan-recipe-tip[hidden]{display:none!important}
.puyan-recipe-tip summary{display:flex!important;align-items:center!important;justify-content:space-between!important;list-style:none!important;cursor:pointer!important;padding:15px 16px!important;color:var(--pr-blue-dark)!important;font-size:15px!important;font-weight:850!important}
.puyan-recipe-tip summary::-webkit-details-marker{display:none!important}
.puyan-recipe-tip summary:after{content:'＋'!important;font-size:21px!important;font-weight:450!important}
.puyan-recipe-tip[open] summary:after{content:'−'!important}
.puyan-recipe-tip>div{padding:0 16px 14px!important;color:#5f7082!important;font-size:14px!important;line-height:1.7!important}
.puyan-recipe-tip p{margin:8px 0!important}
.puyan-recipe-cta-card{text-align:left!important;background:linear-gradient(145deg,#eff6ff,#e4f0ff)!important;border-color:#d3e6fb!important;padding:24px!important}
.puyan-recipe-main-cta{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;width:100%!important;min-height:52px!important;margin:18px 0 0!important;padding:14px 18px!important;border-radius:15px!important;background:var(--pr-blue)!important;color:#fff!important;text-decoration:none!important;font-size:17px!important;line-height:1.2!important;font-weight:900!important;box-shadow:0 8px 20px rgba(57,125,209,.25)!important;transition:transform .15s ease,filter .15s ease!important}
.puyan-recipe-main-cta:hover{transform:translateY(-1px)!important;filter:brightness(.98)!important;color:#fff!important}
@keyframes puyanRecipeFade{from{opacity:.25;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:640px){.puyan-recipe-app{padding:10px 0!important}.puyan-recipe-shell{padding:10px!important;border-radius:22px!important}.puyan-recipe-card,.puyan-recipe-cta-card{padding:19px 16px!important;border-radius:18px!important}.puyan-bmr-number strong{font-size:38px!important}.puyan-bmr-card h2,.puyan-meal-card h2,.puyan-recipe-cta-card h2{font-size:21px!important}.puyan-meal-box{padding:14px!important}.puyan-meal-heading{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}}


/* v1.3.0 multi-persona + inline metabolic recipe report */
.puyan-slim-wrap .puyan-mascot,.puyan-slim-wrap .puyan-profile-prefill,.puyan-slim-wrap .puyan-line-user{display:none!important}
.puyan-question-multiple{position:relative}.puyan-multiple-hint{display:inline-flex;margin:0 0 10px;padding:5px 10px;border-radius:999px;background:#fff0e4;color:#b9500b;font-size:12px;font-weight:850}
.puyan-v130-report{--pv-navy:#264b77;--pv-blue:#2768d6;--pv-soft:#f1f6fc;--pv-line:#dfe7f0;color:#1b2635}
.puyan-v130-report .puyan-report-page{max-width:860px;margin:0 auto;background:#f3f6fa;border-radius:26px;padding:22px}
.puyan-stage-label{display:inline-flex;padding:8px 14px;border-radius:999px;background:#243f68;color:#fff;font-size:14px;font-weight:900;margin-bottom:14px}
.puyan-v130-report h2{font-size:clamp(25px,4vw,38px);line-height:1.25;margin:0 0 12px;color:#1e3554}.puyan-stage-intro,.puyan-stage-note{font-size:16px;line-height:1.75;color:#59687b}
.puyan-persona-grid{display:grid;gap:18px;margin-top:20px}.puyan-persona-card{display:grid;grid-template-columns:minmax(220px,40%) 1fr;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 14px 34px rgba(32,56,84,.10)}.puyan-persona-card img{width:100%;height:100%;min-height:270px;object-fit:cover}.puyan-persona-card-copy{padding:28px}.puyan-persona-card h3{font-size:34px;color:#294e79;margin:0 0 9px}.puyan-persona-card-copy>span{display:inline-flex;padding:8px 14px;border-radius:999px;background:#edf3f9;color:#294e79;font-weight:850}.puyan-persona-card h4{margin:20px 0 7px;color:#c15b09}.puyan-persona-card p{font-size:16px;line-height:1.8;color:#3d4856}.puyan-persona-card strong{display:block;color:#294e79;font-size:18px;line-height:1.55}
.puyan-warm-card,.puyan-nutrition-card,.puyan-source-cta{background:#fff;border:1px solid var(--pv-line);border-radius:22px;padding:24px;margin:0 0 16px;box-shadow:0 9px 25px rgba(40,65,95,.06)}.puyan-warm-card p{font-size:17px;line-height:1.85}.puyan-golden-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.puyan-golden-steps>h3{grid-column:1/-1;margin:0 0 4px}.puyan-golden-steps>div{background:#fff;border:1px solid var(--pv-line);border-radius:18px;padding:18px}.puyan-golden-steps span{display:block;color:#6d7b8a;font-size:13px}.puyan-golden-steps strong{display:block;font-size:24px;margin:4px 0;color:#2768d6}.puyan-golden-steps p{font-size:14px;line-height:1.7;color:#59687b;margin:0}
.puyan-metabolic-grid,.puyan-macro-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.puyan-metabolic-grid>div,.puyan-macro-grid>div{background:#f2f6fb;border-radius:17px;padding:18px;text-align:center}.puyan-metabolic-grid span,.puyan-macro-grid span,.puyan-water-box span{display:block;color:#55708d;font-weight:800}.puyan-metabolic-grid strong{display:block;font-size:42px;color:#132d50;line-height:1.2}.puyan-metabolic-grid small{display:block;color:#6b7786;line-height:1.5}.puyan-nutrition-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.puyan-nutrition-head>span{padding:7px 12px;border-radius:999px;background:#fff0df;color:#e05d16;font-weight:850}.puyan-medical-note{padding:10px 13px;border-radius:13px;background:#f5f7fa;color:#687587;font-size:13px}.puyan-macro-grid strong{display:block;font-size:31px;color:#2366d4}.puyan-water-box{margin-top:12px;padding:16px 20px;border-radius:16px;background:#e5f5fc}.puyan-water-box strong{font-size:28px;color:#2177a8}.puyan-store-warning{display:flex;flex-direction:column;gap:7px;padding:15px;border-radius:15px;background:#fff4f0;border:1px solid #ffd3c7;color:#a8472a}.puyan-source-cta{text-align:center;background:#dfeeff}.puyan-source-cta p{font-size:17px;line-height:1.65;font-weight:750}.puyan-source-button{display:flex!important;justify-content:center!important;width:100%;font-size:18px!important}
.puyan-v130-report .puyan-inline-recipe{padding:0!important}.puyan-v130-report .puyan-recipe-shell{max-width:none!important;padding:0!important;background:transparent!important;border:0!important}.puyan-v130-report .puyan-recipe-card{margin-bottom:16px!important}.puyan-meal-box.is-snack{background:#fff9ea!important;border-color:#f4dca8!important}
.puyan-result-actions{max-width:860px;margin:16px auto 0;display:flex;gap:10px}.puyan-result-actions button{min-height:52px;border-radius:16px;font-weight:900}.puyan-result-next{background:#ff7d1f!important;color:#fff!important;box-shadow:5px 7px 0 #111}.puyan-result-prev{background:#e7ebf1!important;color:#303846!important}
@media(max-width:700px){.puyan-v130-report .puyan-report-page{padding:12px;border-radius:18px}.puyan-persona-card{grid-template-columns:1fr}.puyan-persona-card img{min-height:0;aspect-ratio:1200/800}.puyan-persona-card-copy{padding:20px}.puyan-persona-card h3{font-size:28px}.puyan-golden-steps{grid-template-columns:1fr}.puyan-metabolic-grid,.puyan-macro-grid{grid-template-columns:1fr 1fr}.puyan-nutrition-head{align-items:flex-start;flex-direction:column}.puyan-metabolic-grid strong{font-size:34px}.puyan-macro-grid strong{font-size:27px}}


/* v1.3.2 stable questionnaire layout: one title in the guide bubble, one input card. */
#puyan-ai-slim-form{
  width:100%!important;
  max-width:920px!important;
  margin:0 auto!important;
  padding:0 28px 48px!important;
  box-sizing:border-box!important;
}
#puyan-ai-slim-form .puyan-question-shell,
#puyan-ai-slim-form .puyan-chat-guide,
#puyan-ai-slim-form .puyan-step,
#puyan-ai-slim-form .puyan-grid,
#puyan-ai-slim-form .puyan-actions{
  width:100%!important;
  max-width:760px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
#puyan-ai-slim-form .puyan-step{
  padding:0!important;
  min-height:0!important;
}
#puyan-ai-slim-form .puyan-grid{
  display:block!important;
  grid-template-columns:none!important;
}
#puyan-ai-slim-form .puyan-flow-item,
#puyan-ai-slim-form .puyan-flow-item.is-current,
#puyan-ai-slim-form .puyan-grid > label,
#puyan-ai-slim-form fieldset.puyan-question,
#puyan-ai-slim-form .puyan-consent{
  position:relative!important;
  inset:auto!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  max-width:760px!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  transform:none!important;
}
#puyan-ai-slim-form .puyan-flow-item.is-current{
  display:block!important;
}
#puyan-ai-slim-form .puyan-grid > label{
  padding:24px!important;
  border:2px solid rgba(255,125,31,.55)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:8px 8px 0 rgba(0,0,0,.82)!important;
  font-size:0!important;
  line-height:1!important;
}
#puyan-ai-slim-form .puyan-field-name{
  display:none!important;
}
#puyan-ai-slim-form .puyan-grid input,
#puyan-ai-slim-form .puyan-grid select,
#puyan-ai-slim-form .puyan-grid textarea{
  display:block!important;
  position:static!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  min-height:58px!important;
  margin:0!important;
  padding:14px 16px!important;
  box-sizing:border-box!important;
  font-size:20px!important;
  line-height:1.35!important;
  writing-mode:horizontal-tb!important;
  transform:none!important;
}
#puyan-ai-slim-form .puyan-question{
  padding:22px!important;
  border-radius:24px!important;
}
#puyan-ai-slim-form .puyan-question legend{
  display:none!important;
}
#puyan-ai-slim-form .puyan-question label{
  width:100%!important;
  box-sizing:border-box!important;
  writing-mode:horizontal-tb!important;
  white-space:normal!important;
}
#puyan-ai-slim-form .puyan-bot-bubble{
  display:block!important;
  width:100%!important;
  max-width:760px!important;
  box-sizing:border-box!important;
  margin:0 auto 20px!important;
  font-size:clamp(22px,3vw,32px)!important;
  writing-mode:horizontal-tb!important;
}
#puyan-ai-slim-form .puyan-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin-top:28px!important;
}
#puyan-ai-slim-form .puyan-actions button{
  position:static!important;
  transform:none!important;
  min-width:130px!important;
  width:auto!important;
  margin:0!important;
}
#puyan-ai-slim-form .puyan-next,
#puyan-ai-slim-form .puyan-submit{
  margin-left:auto!important;
}
@media (max-width:640px){
  #puyan-ai-slim-form{padding:0 16px 34px!important;}
  #puyan-ai-slim-form .puyan-grid > label,
  #puyan-ai-slim-form .puyan-question,
  #puyan-ai-slim-form .puyan-consent{padding:18px!important;border-radius:20px!important;box-shadow:5px 5px 0 rgba(0,0,0,.82)!important;}
  #puyan-ai-slim-form .puyan-grid input,
  #puyan-ai-slim-form .puyan-grid select{min-height:52px!important;font-size:18px!important;}
  #puyan-ai-slim-form .puyan-actions button{min-width:112px!important;padding:13px 18px!important;}
}


/* v1.3.3: questionnaire guide has no mascot column; force the title bubble to full width. */
#puyan-ai-slim-form .puyan-chat-guide{
  display:block!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  width:100%!important;
  max-width:760px!important;
}
#puyan-ai-slim-form .puyan-chat-guide > .puyan-bot-bubble{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0 0 20px!important;
  writing-mode:horizontal-tb!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}


/* v1.3.4 report typography + illustration separation
 * All customer-facing wording remains live HTML text.
 * Persona PNG files contain illustrations only; no text is baked into images.
 */
.puyan-v130-report,
.puyan-v130-report *{box-sizing:border-box}
.puyan-v130-report .puyan-report-page{
  width:100%!important;
  max-width:1040px!important;
  overflow:hidden!important;
}
.puyan-v130-report h1,
.puyan-v130-report h2,
.puyan-v130-report h3,
.puyan-v130-report h4,
.puyan-v130-report .puyan-recipe-card h2,
.puyan-v130-report .puyan-nutrition-card h2{
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","PingFang TC","Microsoft JhengHei","Segoe UI",sans-serif!important;
  text-shadow:none!important;
  -webkit-text-stroke:0!important;
  filter:none!important;
  transform:none!important;
  letter-spacing:0!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
}
.puyan-v130-report h2{
  color:#17375e!important;
  font-size:clamp(28px,4vw,46px)!important;
  line-height:1.22!important;
  font-weight:900!important;
  margin:0 0 14px!important;
}
.puyan-v130-report .puyan-persona-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important;
  align-items:stretch!important;
  gap:18px!important;
  width:100%!important;
}
.puyan-v130-report .puyan-persona-card{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  width:100%!important;
  border:1px solid #dfe7f0!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(35,65,98,.09)!important;
}
.puyan-v130-report .puyan-persona-visual{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  min-height:210px!important;
  padding:16px!important;
  overflow:hidden!important;
  background:#f5f8fc!important;
}
.puyan-v130-report .puyan-persona-visual img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:340px!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.puyan-v130-report .puyan-persona-card-copy{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
  min-width:0!important;
  padding:22px!important;
}
.puyan-v130-report .puyan-persona-card h3{
  color:#264b77!important;
  font-size:clamp(25px,2.6vw,34px)!important;
  line-height:1.25!important;
  font-weight:900!important;
  margin:0 0 10px!important;
}
.puyan-v130-report .puyan-persona-card h4{
  color:#c45b0a!important;
  font-size:18px!important;
  line-height:1.45!important;
  font-weight:850!important;
  margin:22px 0 8px!important;
}
.puyan-v130-report .puyan-persona-card p{
  color:#3d4856!important;
  font-size:16px!important;
  line-height:1.8!important;
  margin:0 0 14px!important;
}
.puyan-v130-report .puyan-persona-card strong{
  color:#264b77!important;
  font-size:18px!important;
  line-height:1.6!important;
  margin-top:auto!important;
}
.puyan-v130-report .puyan-warm-card h2,
.puyan-v130-report .puyan-nutrition-card h2,
.puyan-v130-report .puyan-recipe-section-head h2{
  text-shadow:none!important;
  color:#17375e!important;
}
.puyan-v130-report .puyan-nutrition-head{
  min-width:0!important;
}
.puyan-v130-report .puyan-nutrition-head h2{
  min-width:0!important;
  flex:1 1 auto!important;
}
.puyan-v130-report .puyan-nutrition-head>span{
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
.puyan-v130-report .puyan-metabolic-grid>div,
.puyan-v130-report .puyan-macro-grid>div{
  min-width:0!important;
  overflow:hidden!important;
}
.puyan-v130-report .puyan-metabolic-grid strong,
.puyan-v130-report .puyan-macro-grid strong{
  white-space:nowrap!important;
}
@media(max-width:700px){
  .puyan-v130-report .puyan-persona-grid{grid-template-columns:1fr!important}
  .puyan-v130-report .puyan-persona-visual{min-height:190px!important;aspect-ratio:4/3!important}
  .puyan-v130-report .puyan-persona-card-copy{padding:20px 18px!important}
  .puyan-v130-report h2{font-size:30px!important}
  .puyan-v130-report .puyan-nutrition-head>span{white-space:normal!important}
}


/* v1.3.6 warm dialogue, mobile nutrition polish, and highlighted recipe quantities */
.puyan-v130-report .puyan-warm-dialogue-page{max-width:1040px!important}
.puyan-dialogue-sequence{display:flex;flex-direction:column;gap:12px;margin:0 0 18px}
.puyan-dialogue-line{opacity:1;transform:none;background:#fff;border:1px solid #dce6f2;border-radius:20px;padding:18px 20px;box-shadow:0 9px 24px rgba(37,67,100,.07)}
.puyan-dialogue-line h2,.puyan-dialogue-line p{margin:0!important}
.puyan-dialogue-line p{font-size:17px;line-height:1.85;color:#30445f}
.puyan-dialogue-line strong{color:#183a63}
.puyan-dialogue-line.puyan-resonance{border-left:5px solid #d9a32a;background:linear-gradient(135deg,#fffdf6,#fff)}
.puyan-dialogue-line.is-waiting{opacity:0;transform:translateY(10px);pointer-events:none}
.puyan-dialogue-line.is-revealed{animation:puyanDialogueIn .35s ease both}
@keyframes puyanDialogueIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.puyan-dialogue-line .puyan-typing-cursor:after,.puyan-dialogue-line.puyan-typing-cursor:after{content:'▍';display:inline-block;margin-left:3px;color:#d98a11;animation:puyanBlink .8s steps(1) infinite}
@keyframes puyanBlink{50%{opacity:0}}
.puyan-golden-steps>div{position:relative;overflow:hidden}
.puyan-golden-steps>div:before{content:'';position:absolute;inset:0 auto 0 0;width:5px;border-radius:6px}
.puyan-golden-steps .is-start:before{background:#e5a329}.puyan-golden-steps .is-source:before{background:#2d7a53}.puyan-golden-steps .is-extract:before{background:#b87921}
.puyan-golden-steps .is-start strong{color:#c67a00!important}.puyan-golden-steps .is-source strong{color:#247451!important}.puyan-golden-steps .is-extract strong{color:#9d651b!important}
.puyan-metabolic-grid .puyan-metric-card{border:1px solid transparent;position:relative}
.puyan-metabolic-grid .is-bmr{background:linear-gradient(145deg,#eef5ff,#f8fbff);border-color:#d8e8ff}
.puyan-metabolic-grid .is-target{background:linear-gradient(145deg,#fff5e9,#fffaf4);border-color:#ffe0bd}
.puyan-metabolic-grid .puyan-metric-card strong{font-variant-numeric:tabular-nums;letter-spacing:-.035em;text-shadow:0 3px 12px rgba(20,50,85,.08)}
.puyan-metabolic-grid .is-bmr strong{color:#1f62b1!important}.puyan-metabolic-grid .is-target strong{color:#e06d22!important}
.puyan-macro-grid .puyan-macro-card{border:1px solid transparent;position:relative}
.puyan-macro-grid .puyan-macro-card span{font-weight:900!important}
.puyan-macro-grid .puyan-macro-card strong{font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.puyan-macro-grid .is-protein{background:#eef9f6;border-color:#ceeade}.puyan-macro-grid .is-protein span,.puyan-macro-grid .is-protein strong{color:#25896f!important}
.puyan-macro-grid .is-carb{background:#fff5eb;border-color:#ffe0c1}.puyan-macro-grid .is-carb span,.puyan-macro-grid .is-carb strong{color:#e16b16!important}
.puyan-macro-grid .is-fat{background:#f4f1ff;border-color:#ddd4ff}.puyan-macro-grid .is-fat span,.puyan-macro-grid .is-fat strong{color:#6652b9!important}
.puyan-macro-grid .is-fiber{background:#edf8ff;border-color:#d1ebfb}.puyan-macro-grid .is-fiber span,.puyan-macro-grid .is-fiber strong{color:#2981ad!important}
.puyan-meal-items .puyan-qty{display:inline-block;margin:0 .08em;padding:.02em .22em;border-radius:.35em;background:#e8f1ff;color:#1766d7;font-weight:900;line-height:1.35}
.puyan-meal-heading>span{color:#d07a1d!important;font-weight:850!important}
@media(max-width:700px){
  .puyan-v130-report .puyan-report-page{width:calc(100% - 4px)!important;max-width:none!important;margin:0 2px!important;padding:10px!important}
  .puyan-v130-report .puyan-nutrition-card{padding:18px 12px!important;border-radius:20px!important}
  .puyan-v130-report .puyan-nutrition-card h2{font-size:28px!important;line-height:1.2!important}
  .puyan-metabolic-grid{gap:8px!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .puyan-metabolic-grid>div{padding:16px 10px!important;border-radius:16px!important}
  .puyan-metabolic-grid span{font-size:15px!important;line-height:1.45!important}
  .puyan-metabolic-grid strong{font-size:40px!important;line-height:1.08!important;margin:7px 0 5px!important}
  .puyan-metabolic-grid small{font-size:13px!important;line-height:1.55!important}
  .puyan-macro-grid{gap:9px!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .puyan-macro-grid>div{padding:17px 8px!important;border-radius:16px!important}
  .puyan-macro-grid span{font-size:15px!important;line-height:1.4!important}
  .puyan-macro-grid strong{font-size:30px!important;line-height:1.1!important;margin-top:7px!important}
  .puyan-water-box{padding:17px 16px!important}.puyan-water-box strong{font-size:34px!important}
  .puyan-dialogue-line{padding:16px 15px;border-radius:17px}.puyan-dialogue-line p{font-size:16px;line-height:1.8}
}
@media(max-width:390px){
  .puyan-metabolic-grid strong{font-size:34px!important}
  .puyan-metabolic-grid span{font-size:14px!important}
  .puyan-metabolic-grid small{font-size:12px!important}
  .puyan-macro-grid strong{font-size:27px!important}
}
