/* v21.47.7.1 - Canonical React shell. No supplemental DOM menu controller. */
:root { --pq-shell-bottom-space:0px; }
.pq-shell-overlay-open { overflow:hidden!important; }
.pq-shell-overlay { position:fixed; inset:0; z-index:2147482000; pointer-events:none; transform:none!important; perspective:none!important; }
.pq-shell-backdrop { position:absolute; top:var(--pq-shell-anchor-bottom,72px); left:0; right:0; bottom:var(--pq-shell-bottom-space); border:0; border-radius:0; background:rgba(0,0,0,.48); pointer-events:auto; cursor:default; }
.pq-shell-dialog { position:absolute; top:var(--pq-shell-anchor-bottom,72px); right:max(12px,env(safe-area-inset-right)); width:min(420px,calc(100vw - 24px)); max-height:calc(var(--pq-visual-viewport-height,100dvh) - var(--pq-shell-anchor-bottom,72px) - var(--pq-shell-bottom-space) - 12px); overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; background:var(--pq-panel); color:var(--pq-text); border:1px solid var(--pq-line); border-radius:18px; box-shadow:0 12px 40px #0006; padding:12px; pointer-events:auto; transform:none!important; }
.pq-shell-dialog-menu { width:min(460px,calc(100vw - 24px)); }
.pq-shell-dialog-profile { width:min(320px,calc(100vw - 24px)); }
.pq-shell-dialog-head,.pq-canonical-menu>.pq-menu-head { position:sticky; top:-12px; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:12px 0; margin:0 0 8px; background:var(--pq-panel); }
.pq-canonical-menu { display:block; width:100%; padding:0; position:static; color:inherit; }
.pq-canonical-menu .pq-menu-head small { display:block; color:var(--pq-muted); }
.pq-shell-dialog .pq-menu-item { display:flex!important; align-items:center; gap:12px; width:100%; min-height:44px; margin:2px 0; padding:10px 12px; text-align:left; background:transparent; color:var(--pq-text); border:1px solid transparent; border-radius:10px; cursor:pointer; transform:none!important; }
.pq-shell-dialog .pq-menu-item:hover,.pq-shell-dialog .pq-menu-item:focus-visible { background:var(--pq-panel-2); border-color:var(--pq-gold); outline:2px solid var(--pq-gold); outline-offset:-2px; }
.pq-canonical-menu .pq-menu-section { display:block; padding:8px 0; border-top:1px solid var(--pq-line); }
.pq-canonical-menu .pq-menu-section>strong { display:block; color:var(--pq-muted); padding:6px 12px; font-size:.8rem; letter-spacing:.04em; }
.pq-canonical-menu .pq-menu-icon { flex:0 0 24px; width:24px; }
.pq-canonical-menu .pq-menu-nav-icon { width:24px; height:24px; }
.pq-canonical-bottom-nav { display:none!important; }
.pq-guided-workflow { display:flex; gap:8px; margin:10px 0; }
.pq-guided-workflow button { flex:1; min-width:0; min-height:44px; background:var(--pq-panel); color:var(--pq-text); border:1px solid var(--pq-line); border-radius:12px; cursor:pointer; }
.pq-guided-workflow button span { display:inline-block; margin-right:6px; font-weight:800; }
.pq-guided-workflow button[aria-current=step] { border-color:var(--pq-gold); box-shadow:inset 0 -3px var(--pq-gold); }
/* Meal move is a body portal, not a child of a transformed food card. */
.pq-meal-move-backdrop { position:fixed!important; inset:auto 0!important; top:var(--pq-visual-viewport-top,0px)!important; height:var(--pq-visual-viewport-height,100dvh)!important; z-index:2147482100!important; display:flex!important; align-items:center!important; justify-content:center!important; padding:12px!important; transform:none!important; }
.pq-meal-move-backdrop .pq-move-meal-modal { position:relative!important; inset:auto!important; margin:0!important; width:min(580px,100%)!important; max-width:100%!important; max-height:calc(var(--pq-visual-viewport-height,100dvh) - 24px)!important; overflow:auto!important; overscroll-behavior:contain; transform:none!important; padding:16px!important; }
.pq-meal-slot-choices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:12px 0; }
.pq-meal-slot-choices button { min-height:44px; padding:8px 2px; color:var(--pq-text); background:var(--pq-panel-2); border:1px solid var(--pq-line); border-radius:10px; cursor:pointer; }
.pq-meal-slot-choices button[aria-pressed=true] { border-color:var(--pq-gold); outline:2px solid var(--pq-gold); outline-offset:-2px; }
.pq-meal-move-backdrop .pq-food-edit-actions { position:sticky!important; bottom:-16px!important; background:var(--pq-panel)!important; padding:12px 0 max(12px,env(safe-area-inset-bottom))!important; margin:8px 0 0!important; display:flex!important; flex-wrap:wrap; z-index:2; }
.pq-meal-move-backdrop .pq-food-edit-actions .pq-btn { flex:1; min-height:44px; }
/* One height budget: app -> main -> page -> panel -> message scroller. */
body.pq-chat-active .pq-main.pq-main-chat { display:flex!important; flex-direction:column!important; height:var(--pq-visual-viewport-height,100dvh)!important; min-height:0!important; max-height:var(--pq-visual-viewport-height,100dvh)!important; padding-bottom:0!important; overflow:hidden!important; }
body.pq-chat-active .pq-chat-page { display:flex!important; flex-direction:column!important; flex:1 1 0!important; min-height:0!important; height:auto!important; max-height:none!important; margin-bottom:0!important; padding-bottom:0!important; overflow:hidden!important; }
body.pq-chat-active .pq-chat-layout { flex:1 1 0!important; min-height:0!important; height:auto!important; max-height:none!important; overflow:hidden!important; }
body.pq-chat-active .pq-chat-panel-one-scroll { display:flex!important; flex-direction:column!important; min-height:0!important; height:100%!important; max-height:none!important; padding-bottom:0!important; overflow:hidden!important; }
body.pq-chat-active .pq-messages-one-scroll { flex:1 1 0!important; min-height:0!important; max-height:none!important; overflow:auto!important; overscroll-behavior:contain; }
body.pq-chat-active .pq-composer { flex:0 0 auto!important; position:relative!important; inset:auto!important; margin-bottom:0!important; padding-bottom:max(8px,env(safe-area-inset-bottom))!important; }
@media(max-width:900px) {
 :root { --pq-shell-bottom-space:calc(64px + env(safe-area-inset-bottom)); }
 .pq-canonical-bottom-nav { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; position:fixed!important; top:auto!important; left:0!important; right:0!important; bottom:0!important; width:100%!important; height:var(--pq-shell-bottom-space)!important; padding:4px 8px env(safe-area-inset-bottom)!important; background:var(--pq-panel)!important; border-top:1px solid var(--pq-line)!important; border-radius:0!important; z-index:2147482050!important; transform:none!important; }
 .pq-canonical-bottom-nav button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:0; min-height:44px; border:0; border-radius:10px; background:transparent; color:var(--pq-text); cursor:pointer; font-size:12px; }
 .pq-canonical-bottom-nav button.active { background:var(--pq-panel-2); outline:1px solid var(--pq-gold); }
 .pq-canonical-bottom-nav .pq-bottom-nav-icon { height:24px; line-height:24px; font-size:23px; }
 .pq-canonical-bottom-nav img { width:24px; height:24px; object-fit:contain; }
 .pq-main:not(.pq-main-chat) { padding-bottom:calc(var(--pq-shell-bottom-space) + 16px)!important; }
 body.pq-chat-active .pq-main.pq-main-chat { height:calc(var(--pq-visual-viewport-height,100dvh) - var(--pq-shell-bottom-space))!important; max-height:calc(var(--pq-visual-viewport-height,100dvh) - var(--pq-shell-bottom-space))!important; padding:0 8px!important; }
 body.pq-chat-active .pq-chat-layout { display:flex!important; flex-direction:column!important; }
 body.pq-chat-active .pq-chat-panel-one-scroll { flex:1 1 0!important; }
 body.pq-chat-composer-focused { --pq-shell-bottom-space:0px; }
 body.pq-chat-composer-focused .pq-canonical-bottom-nav { display:none!important; }
 .pq-meal-move-backdrop { align-items:flex-end!important; padding:8px!important; }
 .pq-meal-move-backdrop .pq-move-meal-modal { max-height:calc(var(--pq-visual-viewport-height,100dvh) - 16px)!important; border-radius:20px 20px 12px 12px!important; }
 .pq-meal-move-backdrop .pq-food-edit-grid { grid-template-columns:1fr!important; }
 .pq-guided-workflow { gap:5px; }
 .pq-guided-workflow button { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .pq-shell-dialog,.pq-canonical-menu,.pq-meal-move-backdrop { animation:none!important; transition:none!important; } }

.pq-run-progress{border:1px solid var(--pq-line);border-radius:12px;padding:8px;margin:8px 0;font-size:13px}.pq-run-progress>button{width:100%;min-height:44px;background:var(--pq-panel);color:var(--pq-text);border:0;text-align:left;cursor:pointer}.pq-run-progress ol{max-height:160px;overflow:auto;margin:8px 0;padding-left:24px}.pq-run-progress li{padding:4px 0}
