/* Geometry and palette follow approved Stitch DAY_FIX10B / NIGHT_FIX10D.
   Four balanced destinations and finger-sized quantity controls are CORE adaptations. */
:root{--bg:#FCF7EE;--surface:#FDFBF5;--paper:#fffdf8;--text:#252923;--muted:#6F726B;--line:#EEE7DC;--green:#4F7C63;--green-dark:#35614B;--soft:#EBF3EE;--russet:#a96237;--nav:#d1c7b8;--voice-panel-height:0px}
html[data-theme=night]{--bg:#211c18;--surface:#2c2723;--paper:#322c26;--text:#F6EFE4;--muted:#c3b8a9;--line:#50483e;--soft:#343d32;--nav:#302a24;--russet:#a96237}
body{background:var(--bg);color:var(--text)}[hidden]{display:none!important}
.app-shell{width:100%;max-width:640px;padding:8px 16px calc(100px + env(safe-area-inset-bottom));margin:auto;min-height:100dvh}.category-strip{display:flex;gap:8px;overflow-x:auto;margin:0 -4px 12px;padding:2px 4px 6px;scroll-snap-type:x proximity}.category-button{flex:0 0 63px;width:63px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;border:1px solid var(--line);border-radius:16px;background:var(--surface);scroll-snap-align:start}.category-button img{width:42px;height:42px;object-fit:contain}.category-button span{font-size:11px;color:var(--text)}.category-button.active{background:var(--soft);border-color:var(--green)}
.composer{display:grid;grid-template-columns:minmax(0,1fr) 48px 48px;gap:8px;margin-bottom:12px}.composer input{width:100%;min-width:0;height:52px;padding:12px;font-size:16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--text)}.composer button{width:48px;height:52px;min-width:0;border-radius:14px;background:var(--green);color:white;font-size:30px}
#voiceButton,#addStockButton,.field-dictation{background:var(--russet)!important;color:#fff!important;border:0!important;min-height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px;font-size:14px}#voiceButton svg,.field-dictation svg,#addStockButton svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.recording{outline:3px solid var(--text);outline-offset:2px}
.paper-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 26px #30271b0a}.shopping-row{display:grid;grid-template-columns:48px minmax(0,1fr) 44px!important;gap:2px 8px;padding:8px 12px;align-items:center;border-bottom:1px solid var(--line);min-height:0}.shopping-row .item-thumb{grid-column:1;grid-row:1/3;width:48px;height:48px;border-radius:14px;padding:0;object-fit:cover;align-self:center}.shopping-row .item-name{grid-column:2;grid-row:1;line-height:1.2;font-size:17px;text-transform:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0;min-width:0}.shopping-row .quantity-editor{grid-column:2/4;grid-row:2;display:flex;gap:4px;flex-wrap:nowrap;align-items:center;margin:0;padding:0}.shopping-row .qty-step{height:44px;width:44px;min-width:44px;font-size:21px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.shopping-row .qty-input{width:50px;min-width:50px;height:44px;border:1px solid var(--line);border-radius:8px;font-size:16px;text-align:center;background:var(--surface);padding:4px}.shopping-row .unit-label{margin:0;display:block;min-width:0}.shopping-row .unit-input{width:62px;min-width:0;height:44px;font-size:14px;border:0;border-bottom:1px dashed var(--muted);border-radius:4px;background:var(--paper);padding:4px}.shopping-row .check-button{grid-column:3;grid-row:1;position:relative;width:44px;height:44px;min-width:44px;border:0;border-radius:10px;background:transparent}.check-button:before{content:'';position:absolute;inset:10px;border:2px solid var(--muted);border-radius:6px}.check-button.checked{background:transparent}.check-button.checked:before{content:'✓';background:var(--green);color:white;border-color:var(--green);font-size:18px;line-height:20px}.check-button.checked:after{display:none}.shopping-row.done .item-name{text-decoration:line-through;color:var(--muted)}
.list-summary{padding:10px 14px;gap:8px;font-size:14px}#selectAllButton{min-height:44px;font-size:14px}.bought-tab-wrap{padding:0 10px;display:flex;justify-content:flex-end}.bought-tab{width:auto;min-width:160px;min-height:50px;border-radius:0 0 22px 22px;font-size:16px;padding:12px 24px}
.bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0!important;left:0;right:0;width:100%;max-width:640px;transform:none;margin:auto;min-height:76px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:var(--nav);border-top:1px solid var(--line);z-index:20;gap:0}.bottom-nav button{min-height:56px;min-width:0;margin:0;padding:2px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.bottom-nav button>span{font-size:25px;line-height:26px}.bottom-nav small{font-size:11px;font-weight:600;line-height:1.1;white-space:normal}.bottom-nav button.active{color:var(--text)}body:has(.app-shell[hidden]) .bottom-nav{display:none}
.account-shell{padding:20px 16px calc(30px + env(safe-area-inset-bottom));max-width:640px}.account-save{bottom:calc(90px + env(safe-area-inset-bottom));z-index:30;max-width:calc(100% - 32px)}.account-card{padding:20px;border-radius:22px}.account-detail{max-height:85dvh;overflow:auto}.account-actions{gap:8px}.account-actions button{min-height:48px}.first-use{margin:8px 0 12px;padding:12px;font-size:14px}.first-use h2{font-size:16px;margin:0 0 4px}.first-use p{margin:6px 0;line-height:1.35}.first-use button{min-height:44px;padding:8px}.field-dictation{margin:4px 0 10px}.dictation-status{position:fixed;left:16px;right:16px;max-width:608px;margin:auto;bottom:calc(90px + env(safe-area-inset-bottom));padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 3px 16px #0002;z-index:50;font-size:14px;pointer-events:none}body:has(.app-shell[hidden]) .dictation-status{bottom:calc(16px + env(safe-area-inset-bottom))}
.storage-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.storage-tile{padding:7px 2px;min-height:76px}.storage-tile img{width:42px;height:42px}.storage-tile span{font-size:11px}.card-heading{gap:8px;flex-wrap:wrap}.stock-controls{flex-wrap:wrap}.stock-entry .stock-controls{display:flex;gap:8px}.stock-entry .stock-controls label{flex:1;min-width:80px}.stock-entry .stock-controls button{min-height:44px}.compact-row{gap:8px;flex-wrap:wrap}.stock-remove{min-height:44px}.recipe{gap:10px;flex-wrap:wrap}.recipe-emoji{font-size:32px}.recipe button{min-height:44px}.deal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.deal-card{min-width:0}.deal-card h3{overflow-wrap:anywhere}.toast{bottom:calc(90px + env(safe-area-inset-bottom))}
@media(min-width:560px){.shopping-row{grid-template-columns:48px minmax(0,1fr) 216px 44px!important;gap:8px;min-height:64px}.shopping-row .item-thumb{grid-row:1}.shopping-row .item-name{grid-column:2}.shopping-row .quantity-editor{grid-column:3;grid-row:1}.shopping-row .check-button{grid-column:4;grid-row:1}}
@media(max-width:350px){.app-shell{padding-left:10px;padding-right:10px}.shopping-row{padding-left:8px;padding-right:8px;column-gap:4px}.shopping-row .qty-input{width:44px;min-width:44px}.shopping-row .unit-input{width:58px}.shopping-row .quantity-editor{gap:2px}}.screen{padding:0 0 20px}.shopping-list{padding:4px 0}.bottom-nav{height:auto}.recipe{display:flex}.recipe>div:nth-child(2){flex:1;min-width:130px}.toast{white-space:normal;max-width:calc(100% - 32px);text-align:center}
