/* v15 global MD dictation: same compact grey microphone at every text entry. */
html{--md-mic-bg:#6a6b70}
.md-text-entry{display:flex;align-items:flex-start;gap:0;min-width:0;width:100%;margin:6px 0 10px}
.md-text-entry>input,.md-text-entry>textarea{flex:1;min-width:0;width:0!important;margin:0!important;border-radius:0!important;min-height:var(--md-entry-height);font-size:16px}
.md-text-entry>input{height:var(--md-entry-height);padding-top:0;padding-bottom:0}
.md-text-entry>.field-dictation,.account-card .md-text-entry>.field-dictation,[data-screen=list] #voiceButton{flex:0 0 var(--md-entry-height);width:var(--md-entry-height);height:var(--md-entry-height);min-height:var(--md-entry-height);max-height:var(--md-entry-height);min-width:var(--md-entry-height);padding:0;margin:0;border:0!important;border-radius:0;background:var(--md-mic-bg)!important;color:#fff!important;opacity:1;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;touch-action:manipulation;box-sizing:border-box}
.md-text-entry>.field-dictation svg,[data-screen=list] #voiceButton svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.md-text-entry>.field-dictation.recording,[data-screen=list] #voiceButton.recording{background:#202126!important;outline:2px solid #fff;outline-offset:-3px}
.member-row .md-text-entry{margin:0}
.stock-entry .md-text-entry{margin:6px 0 10px}
.auth-providers{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.account-card .auth-providers button{flex:0 1 auto;font-size:12px;min-height:32px;padding:5px 9px;border-radius:0;border-color:var(--line)}
/* v15: one flowing entry, aligned light ADD controls, continuous rows. */
html{--md-entry-height:34.5px;--md-footer-height:calc(76px + env(safe-area-inset-bottom))}
[data-screen=list] .composer{grid-template-columns:var(--md-entry-height) minmax(0,1fr) var(--md-entry-height);gap:0;margin:0;border:0;height:var(--md-entry-height)}
[data-screen=list] .composer input,[data-screen=list] .composer button{height:var(--md-entry-height);min-height:0;padding-top:0;padding-bottom:0}
[data-screen=list] .composer button{width:var(--md-entry-height);min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
[data-screen=list] #voiceButton svg{width:20px;height:20px}
[data-screen=list] #addItemButton{font-size:23px;font-weight:400;line-height:1}
[data-screen=list] .shopping-list{display:block;padding-top:0;padding-bottom:0}
[data-screen=list] .shopping-row{margin:0;row-gap:0}
[data-screen=list] #categoryCatalog{padding-right:0}
#categoryCatalog .catalog-options{display:block;gap:0;margin-top:0}
#categoryCatalog .catalog-branch,#categoryCatalog .catalog-children{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}
#categoryCatalog .catalog-product>span:last-child+.catalog-chevron{border-left:1px solid #dceaf4}
#categoryCatalog .catalog-product,#catalogSuggestions .catalog-product,
#categoryCatalog .catalog-branch>summary{display:grid;grid-template-columns:minmax(0,1fr) var(--md-entry-height);align-items:center;min-height:40px;padding:0 0 0 6px;margin:0;gap:0}
#categoryCatalog .catalog-product>span:last-child,#catalogSuggestions .catalog-product>span:last-child{width:32px;height:32px;min-width:32px;min-height:32px;justify-self:center;display:flex;align-items:center;justify-content:center;background:var(--skin-primary);color:#fff;font-size:23px;line-height:1;font-weight:400;border-radius:0}
#categoryCatalog .catalog-chevron{width:var(--md-entry-height);min-width:0;height:40px;min-height:40px;font-size:22px;justify-self:center}
#categoryCatalog #closeCatalog{width:44px;height:44px;min-width:44px;min-height:44px;font-size:36px;line-height:1;padding:0}
/* Measure the real footer, including safe area; never overlap its controls. */
.app-shell:has([data-screen=list].active){padding-bottom:var(--md-footer-height)}
[data-screen=list] .composer{position:static;inset:auto;transform:none;z-index:auto;background:var(--list-paper)}
/* Jarmila is a separate, warm communication surface at the app's edge. */
.jarmila-help{position:fixed;z-index:60;top:clamp(180px,36dvh,340px);left:50%;transform:translateX(-50%);width:min(100%,var(--help-width,640px));pointer-events:none;color:#684c39;font-size:15px;line-height:1.45}
.jarmila-tab,.jarmila-panel{pointer-events:auto;position:absolute;top:0;border:1px solid #d5c4ae;background:rgba(255,250,242,.97);box-shadow:0 4px 18px #49321d20}
.jarmila-help[data-side=left] .jarmila-tab,.jarmila-help[data-side=left] .jarmila-panel{left:0;border-left:0;border-radius:0 18px 18px 0}
.jarmila-help[data-side=right] .jarmila-tab,.jarmila-help[data-side=right] .jarmila-panel{right:0;border-right:0;border-radius:18px 0 0 18px}
.jarmila-tab{width:44px;height:48px;padding:9px;color:#684c39;cursor:pointer}
.jarmila-tab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.jarmila-panel{width:min(300px,calc(100% - 52px));padding:8px 14px 14px;animation:jarmila-enter-right .2s ease-out}
.jarmila-help[data-side=left] .jarmila-panel{animation-name:jarmila-enter-left}
.jarmila-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.jarmila-heading strong{font-family:Georgia,serif;font-size:18px;font-weight:400}
.jarmila-close{border:0;background:transparent;color:#684c39;min-width:44px;min-height:44px;padding:0;font-size:26px;cursor:pointer}
.jarmila-panel p{margin:0;overflow-wrap:anywhere}
.jarmila-help button:focus-visible{outline:2px solid #684c39;outline-offset:-3px}
@keyframes jarmila-enter-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}
@keyframes jarmila-enter-right{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.jarmila-panel{animation:none!important}}
