.product-image{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:14px;margin-bottom:20px}.book-intro{display:flex;gap:24px;align-items:center;margin:22px 0 32px}.book-intro img{border-radius:14px;flex-shrink:0}.book-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:28px;align-items:start}.book-toc{background:#191b20;border:1px solid #30323a;border-radius:16px;padding:16px;max-height:75vh;overflow:auto;position:sticky;top:100px}.book-toc summary{font-weight:700;padding:8px;cursor:pointer}.book-link{display:grid;grid-template-columns:25px 1fr;gap:8px;text-align:left;width:100%;border:0;background:none;color:#bbbdc6;padding:12px 8px;border-radius:8px;line-height:1.5;font:inherit;font-size:13px;cursor:pointer}.book-link small{grid-column:2;color:#8e929d}.book-link.selected{color:#fff;background:#3a2028}.book-link span{color:#ff354c}.book-reader{background:#191b20;border:1px solid #30323a;border-radius:20px;padding:clamp(20px,4vw,46px);min-width:0;scroll-margin-top:130px}.book-reader h2{font-size:clamp(25px,3vw,38px);line-height:1.2}.book-reader p{font-size:17px;line-height:1.85;color:#d6d7de;max-width:68ch}.book-reader h3{margin-top:30px}.book-reader a{color:#ff7181}.reader-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:32px 0}.recipe-extra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.recipe-extra .field{min-width:0}.recipe-extra select{width:100%;min-width:0}.recipe-count{grid-column:1/-1;color:#b9bcc7;margin:6px 0}.portion-mode,.portion-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.portion-grid{display:grid;gap:16px}.portion-grid.pair{grid-template-columns:repeat(2,minmax(0,1fr))}.portion-person{min-width:0;padding:16px;background:#202228;border:1px solid #373943;border-radius:14px}.portion-person h4{margin-top:0}.portion-person .nutrients{flex-wrap:wrap}.meal-energy{display:flex;align-items:end;gap:10px;margin-top:14px;flex-wrap:wrap}.meal-energy .field{flex:1;min-width:130px}.company-details{font-size:12px;color:#9296a3;margin-top:36px}.offer .product-image{max-width:230px;display:block;margin:auto auto 16px}
@media(max-width:850px){.book-layout{grid-template-columns:1fr}.book-toc{position:static;max-height:260px}.recipe-extra{grid-template-columns:1fr 1fr}.recipe-extra .field:last-of-type{grid-column:1/-1}}
@media(max-width:540px){.book-intro{align-items:start;gap:14px}.book-intro img{width:90px;height:90px}.book-intro p{font-size:14px}.portion-grid.pair,.recipe-extra{grid-template-columns:1fr}.book-reader p{font-size:16px}.reader-nav .btn{font-size:13px;padding:12px}.portion-person{padding:12px}}
@media print{.book-toc,.reader-nav,.book-intro,.meal-energy,.portion-buttons{display:none}.book-layout{display:block}.book-reader{border:0;background:white;color:black}.book-reader p{color:black}}

/* NIO stays inside the assistant page, never overlays navigation or recipes. */
.nio-intro{display:flex;align-items:center;gap:clamp(20px,4vw,48px);margin:0 0 28px;padding:24px;border:1px solid #303137;border-radius:24px;background:#101114;overflow:hidden}
.nio-avatar{display:block;width:clamp(140px,24vw,240px);height:auto;aspect-ratio:1;object-fit:contain;flex-shrink:0;background:#101114;border-radius:20px}
.nio-intro h1{font-size:clamp(28px,4vw,46px);line-height:1.15;margin:12px 0}
.nio-intro p{color:#bfc0c7;max-width:38ch;margin:0 0 16px}
.nio-preview-label{display:inline-block;font-size:12px;color:#d2d2d7;border:1px solid #393a40;border-radius:99px;padding:7px 12px}
@media(max-width:600px){.nio-intro{gap:12px;padding:16px;align-items:center}.nio-avatar{width:112px}.nio-intro h1{font-size:27px}.nio-intro .eyebrow{font-size:10px;letter-spacing:.1em}.nio-intro p{font-size:13px;line-height:1.5}.nio-preview-label{font-size:10px;padding:5px 8px}}
@media(max-width:360px){.nio-intro{flex-direction:column;text-align:center}.nio-avatar{width:140px}}

/* Readable mobile type and a quiet, persistent assistant entry point. */
.nio-launcher{position:fixed;right:20px;bottom:calc(var(--nio-bottom,0px) + 18px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;gap:10px;align-items:center;text-decoration:none;color:#fff;max-width:calc(100vw - 32px);filter:drop-shadow(0 6px 15px #0009)}
.nio-launcher[hidden]{display:none!important}
.nio-launcher-copy{padding:10px 14px;background:#202228;border:1px solid #454751;border-radius:16px;display:flex;flex-direction:column;gap:4px;line-height:1.3}
.nio-launcher-copy strong{font-size:15px;font-weight:750}.nio-launcher-copy small{font-size:12px;color:#c4c6ce}
.nio-launcher-avatar{position:relative;width:76px;height:76px;flex:none;border-radius:50%;background:#101114;border:1px solid #4c3038}
.nio-launcher video{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%;pointer-events:none}
.nio-launcher-chat{position:absolute;right:-2px;bottom:0;width:26px;height:26px;padding:5px;border-radius:50%;background:#ff2038;display:grid;place-items:center}.nio-launcher-chat svg{width:16px;height:16px}
.nio-launcher:focus-visible{outline:3px solid #ff8292;outline-offset:5px;border-radius:18px}
body:has(dialog[open]) .nio-launcher,body:has(input:focus,textarea:focus) .nio-launcher{display:none}
.app-main{padding-bottom:130px}
.chatbox .bubble{font-size:17px;line-height:1.7;overflow-wrap:anywhere;max-width:94%}
.chatbox .chatinput input{font-size:17px;min-height:50px}.chatbox .quick-questions button{font-size:15px;line-height:1.45;padding:10px 14px;min-height:44px}
@media(max-width:760px){
 .app-main{font-size:17px;line-height:1.65;padding-bottom:190px}
 .app-main :is(p,.field,.checkbox,.listline){font-size:16px;line-height:1.65}
 .app-main :is(.small,.muted.small,.app-note,.tag){font-size:14px;line-height:1.6}
 .app-main .btn{font-size:16px}.app-main .textbtn{font-size:15px}
 #modal .modalbody{font-size:17px;line-height:1.65}
 #modal .modalbody :is(p,label,.field,.checkbox,select,input){font-size:16px;line-height:1.6}
 #modal .modalbody :is(.app-note,small,.small){font-size:14px;line-height:1.6}
 #modal .profile-summary strong{font-size:16px}
 .nio-intro p{font-size:16px;line-height:1.6}.nio-preview-label{font-size:12px}
 .chatbox .messages{padding:12px;min-height:280px}.chatbox .bubble{font-size:18px;line-height:1.65;max-width:96%;padding:14px 16px}
 .chatbox .chatinput{gap:8px;padding:12px 0}.chatbox .chatinput input{font-size:17px;min-width:0;padding:12px}
 .chatbox .chatinput .btn{flex-shrink:0;min-width:48px;padding:12px}
 .nio-launcher{right:12px;gap:8px;bottom:calc(var(--nio-bottom,0px) + 12px + env(safe-area-inset-bottom,0px))}
 .nio-launcher-avatar{width:62px;height:62px}.nio-launcher-copy{padding:9px 12px}.nio-launcher-copy strong{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.nio-launcher video{display:none}.nio-launcher-avatar{background:#101114 url('assets/nio-poster.webp') center/contain no-repeat}}
