@font-face{font-family:LocalSans;src:local('Aptos'),local('Segoe UI'),local('Arial');font-display:swap}
:root{color-scheme:dark;--bg:#191b22;--surface:#20241e;--line:#333b2d;--text:#f4f0ed;--muted:#a9a9b5;--accent:#ffb4a0;--ink:#382321;--orange:#edb18a;font-family:LocalSans,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;background:#111319;color:var(--text)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit;background:none;border:0;cursor:pointer}button:disabled{opacity:.45;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--accent);color:var(--ink);padding:12px}.skip-link:focus{top:10px}
.app-shell{max-width:600px;min-height:100dvh;margin:0 auto;background:var(--bg);position:relative}.topbar{position:sticky;top:0;z-index:15;background:#191b22f2;backdrop-filter:blur(20px);height:calc(64px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:8px;padding:env(safe-area-inset-top) 22px 0;border-bottom:1px solid #ffffff05}.brand{display:flex;align-items:center;gap:9px;font-size:24px;font-weight:700;letter-spacing:-1px;white-space:nowrap}.brand img{border-radius:11px}.brand-dot{color:var(--accent)}.demo-label{color:#7d8a6d;font-size:7px;letter-spacing:1px;margin-left:3px;border:1px solid #3c4732;padding:3px 4px;border-radius:4px}.topbar-actions{display:flex;align-items:center;gap:9px}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:14px;color:#d4d3dc}.icon-button:hover{background:#292e26}.sync-status{font-size:10px;color:#97a887;display:flex;align-items:center;gap:5px;white-space:nowrap}.sync-status i{width:5px;height:5px;background:#c5df98;border-radius:50%}.sync-status.offline{color:var(--orange)}.sync-status.offline i{background:var(--orange)}main{padding:18px 22px calc(125px + env(safe-area-inset-bottom));outline:0}.page-heading{margin-bottom:18px}h1{font-size:32px;font-weight:680;letter-spacing:-1.3px;line-height:1.18}.shared-with{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:11px;color:#b1b5c6}.avatars{display:flex;padding-right:3px}.avatar{display:inline-grid;place-items:center;width:23px;height:23px;border:2px solid var(--bg);border-radius:50%;font-size:8px;font-weight:700;flex-shrink:0}.avatar-m{background:#b2c38f;color:#2c3a20}.avatar-k{background:#e0b69c;color:#4e3728;margin-left:-6px}.shared-dot{width:3px;height:3px;border-radius:50%;background:#647059}.list-column{min-width:0}.overview{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:18px;font-size:12px;color:var(--muted)}.overview-copy{display:flex;gap:6px;align-items:baseline}.overview-number{font-weight:700;font-size:14px;color:var(--text)}.overview-copy strong{font-weight:400}.cart-count{color:#7e8d6e;font-size:11px}.list-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:17px}.group-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 13px;border:1px solid #46523a;border-radius:12px;color:#b4c4a0;font-size:12px;font-weight:550}.group-toggle svg{width:17px;height:17px}.group-toggle[aria-pressed=true]{background:var(--accent);color:var(--ink);border-color:var(--accent)}.toggle-state{width:19px;height:12px;background:#4b583e;border-radius:9px;position:relative;margin-left:3px}.toggle-state:after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;top:2px;left:2px;background:#aab994;transition:transform .15s}.group-toggle[aria-pressed=true] .toggle-state{background:#657d40}.group-toggle[aria-pressed=true] .toggle-state:after{transform:translateX(7px);background:#ecf8d0}.priority-filter{display:inline-flex;align-items:center;gap:5px;min-height:42px;padding:8px;color:#879778;font-size:11px;margin-right:auto}.priority-filter svg{width:15px;height:15px}.priority-filter.active{color:var(--orange)}.search-toggle{color:#9ba98c}.search-toggle[aria-pressed=true]{background:#292e26;color:var(--accent)}.list-search{margin-bottom:14px}
.classic-list{border:1px solid #373b48;border-radius:17px;background:#23262f;overflow:hidden}.item-row{display:flex;gap:3px;align-items:center;min-height:65px;padding:3px 8px 3px 4px;position:relative;transition:background .15s}.item-row+.item-row{border-top:1px solid #ffffff08}.item-row:active{background:#303b25}.check-button{position:relative;width:44px;height:48px;flex:0 0 44px;display:grid;place-items:center;border-radius:11px;color:var(--ink);padding:0}.check-button:before{content:'';width:24px;height:24px;position:absolute;border:1.5px solid #566447;border-radius:8px;background:#1a2016}.check-button svg{position:relative;width:15px;height:15px;opacity:0;stroke-width:2.4}.check-button:hover:before{border-color:var(--accent)}.item-label{display:flex;align-items:center;flex:1;min-width:0;gap:8px;min-height:54px;padding:9px 4px;text-align:left}.item-text{min-width:0;flex:1}.item-name{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:500;line-height:1.35;color:#edf0e4;overflow-wrap:anywhere}.item-note{display:block;font-size:11px;color:#8e9f7e;margin-top:4px;overflow-wrap:anywhere}.repeat-mini,.urgent-mini{display:inline-flex;flex-shrink:0}.repeat-mini{color:#8ea970}.urgent-mini{color:var(--orange)}.repeat-mini svg,.urgent-mini svg{width:12px;height:12px}.item-category-mark{display:flex;align-items:center;color:var(--cat);opacity:.85}.item-category-mark svg{width:15px;height:15px;stroke-width:1.5}.quantity{font-size:11px;overflow-wrap:anywhere;max-width:75px;padding:5px 8px;border-radius:7px;color:#b5c29f;background:#343b4e;flex-shrink:0}.item-row.checked{background:#1d2028}.checked .check-button:before{background:#485a34;border-color:#485a34}.checked .check-button svg{opacity:1;color:#d6e6b9}.checked .item-name{text-decoration:line-through;text-decoration-color:#6e7c5e;color:#7f8e71}.checked .item-note{color:#6d7b60}.checked .quantity{color:#7a886d;background:#272f21}.checked .item-category-mark{opacity:.4}.category-group{margin-top:23px}.category-group:first-child{margin-top:4px}.group-heading{display:flex;align-items:center;gap:8px;margin:0 3px 10px;font-size:12px;font-weight:550;color:var(--cat)}.group-heading svg{width:17px;height:17px}.group-heading small{color:#81916e;font-size:10px;font-weight:400}.group-heading:after{content:'';height:1px;background:#323d29;flex:1;margin-left:6px}.completed-block{margin-top:26px}.completed-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.completed-heading button{display:flex;align-items:center;gap:7px;min-height:44px;padding:5px 0;color:#94a482;font-size:12px}.completed-heading button svg{width:16px;height:16px}.completed-heading .archive-button{padding:8px;color:#7b8c69;font-size:11px}.section-note{font-size:10px;color:#969bab;line-height:1.7;margin:12px 3px 0}
.mobile-nav{position:fixed;inset:auto max(0px,calc((100vw - 600px)/2)) 0;z-index:20;display:flex;align-items:center;gap:4px;justify-content:space-between;min-height:87px;padding:11px 17px calc(13px + env(safe-area-inset-bottom));background:#20232cf5;border-top:1px solid #3b4050;backdrop-filter:blur(20px)}.mobile-nav>button{min-height:55px;min-width:68px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:14px;font-size:10px;color:#969aab}.mobile-nav>button svg{width:22px;height:22px}.mobile-nav>button.active{color:var(--accent);background:#4d394455}.mobile-nav>.mobile-add{flex:0 0 53px;min-width:53px;min-height:53px;border-radius:18px;background:var(--accent);color:var(--ink);margin-left:9px;box-shadow:0 5px 15px #0003}.mobile-nav>.mobile-add svg{width:26px;height:26px;stroke-width:2}.button{min-height:47px;padding:12px 16px;border-radius:13px;border:1px solid #565b70;background:#303545;color:#e0d8de;font-weight:600;font-size:13px;display:inline-flex;justify-content:center;align-items:center;gap:8px}.button:hover{background:#36432b}.button-primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.button-primary:hover{background:#e6f7b7}.button-danger{background:#392b24;color:#e5ac96;border-color:#644638}.button-small{min-height:42px;font-size:11px;padding:9px 12px}.button svg{width:18px;height:18px}.empty-state{text-align:center;padding:43px 18px;border:1px dashed #46536b;border-radius:20px;background:#242a37;margin-top:7px}.empty-icon{display:grid;place-items:center;width:59px;height:59px;margin:0 auto 18px;background:#354460;border-radius:19px;color:var(--accent)}.empty-icon svg{width:27px;height:27px}.empty-state h2{font-size:22px;letter-spacing:-.5px;margin-bottom:10px}.empty-state p{font-size:12px;line-height:1.7;color:#9fae90;max-width:300px;margin:0 auto 20px}
.catalog-toolbar{display:flex;gap:10px;margin-bottom:17px}.catalog-count{font-size:11px;color:#879877;margin-bottom:12px}.product-grid{display:grid;gap:8px}.product-card{display:flex;align-items:center;gap:12px;padding:13px 12px;background:#242833;border:1px solid #3a4254;border-radius:15px}.product-emoji{font-size:26px;width:38px;height:39px;display:grid;place-items:center;border-radius:12px;background:#343b4c;flex-shrink:0}.product-content{flex:1;min-width:0}.product-content strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.category-tag{display:inline-flex;align-items:center;gap:5px;border-radius:5px;font-size:10px;padding:3px 6px;color:var(--cat);background:color-mix(in srgb,var(--cat),transparent 92%);margin-top:5px}.category-tag svg{width:12px;height:12px}.category-tag.rainbow{background:linear-gradient(110deg,#f0b47b1c,#d9c9811c,#99c6891c,#c7a9da1c)}.history-date{font-size:10px;color:#7e906d;margin-top:4px}.round-add{min-width:42px;min-height:42px;display:grid;place-items:center;border:1px solid #596785;border-radius:13px;color:#b9d0f9;flex-shrink:0}.round-add svg{width:19px;height:19px}.round-add.is-added{border-color:#42485c;color:#7e9564}.round-add:hover{background:#39492a}.view-description{color:#92a382;font-size:12px;line-height:1.7;margin-bottom:19px}.no-results{font-size:13px;color:var(--muted);text-align:center;padding:28px 10px}
input,select{display:block;width:100%;background:#2b2e3a;border:1px solid #4b5265;border-radius:12px;color:var(--text);padding:12px;min-height:46px;font-size:16px;min-width:0}input::placeholder{color:#858ba2}select{padding-right:28px}.field{display:block;font-size:12px;color:#bfc1d2}.field>input,.field>select{margin-top:7px}.optional{font-size:10px;color:#71845f;margin-left:5px}.field-row{display:flex;gap:12px}.field-row>.field{flex:1;min-width:0}.field-row>.quantity-field{flex:0 0 112px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid #555c76;background:#2a2e3c;border-radius:14px;padding:0 13px;margin:0 0 9px}.search-field>svg{width:19px;height:19px;color:#bbd297}.search-field input{border:0;background:none;padding:14px 0;font-size:16px;min-height:49px}.search-field input:focus-visible{outline:0}.search-field:focus-within{border-color:var(--accent)}
dialog{width:min(100%,560px);max-width:100%;max-height:min(90dvh,850px);margin:auto auto 0;border:1px solid #485068;border-bottom:0;border-radius:27px 27px 0 0;background:#232631;color:var(--text);padding:10px 22px calc(25px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 -20px 100px #0006}dialog::backdrop{background:#080d08a8;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.dialog-handle{width:36px;height:4px;border-radius:4px;background:#526341;margin:0 auto 17px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}.dialog-heading h2{font-size:25px;line-height:1.2;letter-spacing:-.6px;overflow-wrap:anywhere;font-weight:650}.dialog-heading p{font-size:12px;color:#a8aaba;margin-top:7px}.dialog-heading>.icon-button{background:#343849;margin-top:-2px;flex-shrink:0;min-width:36px;min-height:36px;border-radius:50%}.dialog-heading>.icon-button svg{width:18px;height:18px}.suggestions{max-height:51dvh;overflow:auto;scrollbar-width:thin}.suggestion-heading{font-size:10px;font-weight:500;color:#a8aabb;margin:16px 0 8px}.suggestion{display:flex;align-items:center;gap:8px;min-height:64px;padding:9px 1px;border-bottom:1px solid #383e50;width:100%;text-align:left}.suggestion-select{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:44px;text-align:left;padding:0;color:inherit}.suggestion-name{flex:1;font-size:14px;overflow-wrap:anywhere}.suggestion-name small{font-size:10px;color:#a3a8b9;display:block;margin-top:3px}.suggestion .category-tag{margin:0;max-width:112px;font-size:9px;flex-shrink:0}.suggestion .category-tag svg{display:none}.suggestion-create{color:var(--accent);gap:12px;border:0}.suggestion-create .round-add{background:#35442a;border-color:#526b3b}.suggestion-create .suggestion-name{font-size:13px}#item-fields{display:grid;gap:18px;padding-top:2px}.item-options{border:1px solid #3b4b30;border-radius:15px;overflow:hidden}.switch-option{display:flex;align-items:center;gap:11px;padding:14px 12px;min-height:66px}.switch-option+.switch-option{border-top:1px solid #3a472e}.option-icon{color:#b4c7ed;display:flex}.option-icon svg{width:20px;height:20px}.option-copy{flex:1;font-size:13px;line-height:1.3}.option-copy small{display:block;color:#9aa3ba;font-size:10px;margin-top:4px}.switch-option input{appearance:none;width:38px;min-width:38px;height:23px;min-height:23px;border:0;background:#49573b;border-radius:20px;padding:0;position:relative;margin:0;cursor:pointer}.switch-option input:after{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;background:#9bae86;border-radius:50%;transition:transform .15s}.switch-option input:checked{background:#b7d581}.switch-option input:checked:after{background:#2e4220;transform:translateX(15px)}.dialog-footer{display:flex;gap:11px;position:sticky;bottom:calc(-25px - env(safe-area-inset-bottom));background:#232631f5;padding:18px 0 calc(6px + env(safe-area-inset-bottom));margin-top:2px;border-top:1px solid #3d4353}.dialog-footer .button-primary{flex:1}
.settings-grid{display:grid;gap:14px}.settings-card{padding:18px 16px;background:#292d3a;border:1px solid #42485c;border-radius:16px}.settings-card h2{font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:10px;letter-spacing:-.2px}.settings-card h2 svg{width:19px;height:19px;color:#bdcf9a}.settings-card p{font-size:12px;line-height:1.7;color:#b0b2c2;margin-bottom:14px}.settings-card .section-note{font-size:10px;margin:10px 0 0}.settings-card select{margin-bottom:8px}.setting-status{font-size:10px;color:#b4cc92;margin-top:11px;line-height:1.6}.settings-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.account-member{display:flex;align-items:center;gap:10px;font-size:13px;padding:12px 0;border-bottom:1px solid #3a482e}.account-member:last-of-type{border:0}.account-member .avatar{width:27px;height:27px;font-size:10px;border:0;margin:0}.account-member small{font-size:10px;color:#8d9f7a;margin-left:auto}.settings-demo{margin-top:14px;text-align:center}.settings-demo button{color:#a5bd85;font-size:11px;min-height:44px}.toast{position:fixed;bottom:calc(102px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;z-index:100;background:#ffb4a0;color:#382321;border:1px solid #e6f5c6;border-radius:14px;box-shadow:0 10px 35px #0005;padding:13px 17px;font-size:12px;max-width:min(calc(100vw - 30px),510px);width:max-content;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#e6b69a;border-color:#f0c9ae;color:#3e2a1c}.loading{text-align:center;padding:70px 15px;color:var(--muted);font-size:13px}.loading svg{display:block;margin:0 auto 14px;color:var(--accent)}
.login-page{background:var(--bg);min-height:100dvh;display:grid;place-items:center;padding:32px 26px}.login-card{width:100%;max-width:360px}.login-card>img{width:62px;height:62px;margin-bottom:27px}.login-card .eyebrow{font-size:9px;letter-spacing:2px;color:#a7ba8e;margin-bottom:14px}.login-card h1{font-size:31px}.login-card>p{color:#97a989;font-size:13px;line-height:1.7;margin:16px 0 24px}.login-card form{display:grid;gap:18px}.login-card .button{margin-top:5px}.login-card>small{display:block;font-size:10px;color:#7d916c;margin-top:19px}.demo-link{display:block;color:var(--accent);font-size:12px;margin-top:20px}.form-error{color:#e8b6a0;font-size:12px}.title-period{color:var(--accent)}.login-decoration{display:none}
@media(min-width:601px){.app-shell{border-inline:1px solid #35402b;box-shadow:0 0 70px #0003}dialog{margin-bottom:22px;border-bottom:1px solid #485068;border-radius:26px}.mobile-nav{border-inline:1px solid #35402b}}
@media(max-width:360px){.topbar{padding-left:16px;padding-right:12px}.brand{font-size:22px;gap:7px}.brand img{width:30px;height:30px}.demo-label{display:none}.topbar-actions{gap:2px}.sync-status{font-size:9px}main{padding:20px 14px 115px}h1{font-size:31px}.mobile-nav{padding-left:10px;padding-right:10px}.mobile-nav>button{min-width:60px;font-size:9px}.mobile-nav>.mobile-add{margin-left:3px;min-width:48px;flex-basis:48px;min-height:49px}.quantity{max-width:61px;font-size:10px}.item-name{font-size:14px}.priority-filter{font-size:10px;padding:7px 3px}.group-toggle{font-size:11px;padding:8px 10px}dialog{padding-left:16px;padding-right:16px}.field-row{gap:9px}.field-row>.quantity-field{flex-basis:96px}.suggestion .category-tag{max-width:95px;font-size:8px}.suggestion-name{font-size:13px}.option-copy small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.category-group .item-category-mark{display:none}

/* The shared identity lives in the app bar, keeping the list close to the thumb. */
.brand-copy{line-height:1.08}.brand-copy small{display:block;letter-spacing:0;font-size:9px;font-weight:400;color:#96a685;margin-top:4px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.shared-with{margin:0;flex-shrink:0}.shared-with .avatar{width:26px;height:26px;font-size:9px}.shared-caption{display:none}.overview{margin-bottom:12px}.list-toolbar{margin-bottom:14px}

/* Organization and group controls use a larger type scale and distinct accents. */
:root{--accent:#ffb4a0;--ink:#382321;--muted:#a9a9b5;--bg:#191b22}
.topbar{background:#191b22f5}.brand-copy{font-size:24px}.brand-copy small{display:none}main{padding-top:13px}.overview{font-size:13px;margin-bottom:14px}.overview-number{font-size:17px}.cart-count{color:#999cad;font-size:12px}
#open-settings{width:44px;height:44px;border-radius:15px;border:1px solid #48536c;background:#2b3242;color:#b6cafa;box-shadow:inset 0 1px #ffffff08}#open-settings svg{width:23px;height:23px;stroke-width:1.6}
.list-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) 42px;gap:8px}.group-toggle{font-size:14px;border-color:#565b70;color:#d4cedc;min-height:45px;padding:9px 10px;gap:6px}.group-toggle svg{width:16px;height:16px}.group-toggle[aria-pressed=true]{background:#a8caff;color:#24304a;border-color:#a8caff}.group-toggle[aria-pressed=true] .toggle-state{background:#5474a6}.group-toggle[aria-pressed=true] .toggle-state:after{background:#e7efff}.toggle-state{background:#50586d}.toggle-state:after{background:#b1b9d0}
#list-sort{font-size:15px;background:#292d39;border-color:#424b61;min-height:45px;border-radius:12px;padding:9px 22px 9px 10px;color:#e0def0}.search-toggle{min-width:42px;color:#b5c2df}.search-toggle[aria-pressed=true]{background:#333c52;color:#b5d1ff}
.quantity{font-size:15px;font-weight:650;min-width:30px;text-align:center;padding:5px 8px;color:var(--cat,#d1c5f4);background:color-mix(in srgb,var(--cat,#afcaff),transparent 90%);max-width:82px}.item-age{color:#9298ae;font-size:11px;white-space:nowrap;flex-shrink:0}.row-detail{display:flex;gap:8px;align-items:baseline;margin-top:4px}.row-detail .item-note{margin:0;color:#aaaabc;font-size:11px;min-width:0}.item-note+.item-age:before{content:'·';margin-right:7px;color:#676e84}.item-category-mark{opacity:.95}.check-button:before{background:#1d2029;border-color:#656d82}.checked .check-button:before{background:#3d5e58;border-color:#3d5e58}.checked .check-button svg{color:#b8e0cf}.checked .item-name{color:#7f879e;text-decoration-color:#707b94}.checked .quantity{color:#8994ad;background:#2a303c}.checked .item-note,.checked .item-age{color:#77829b}.repeat-mini{color:#c4b0fa}.urgent-mini{color:#efbd80}.completed-heading button{font-size:13px;color:#b3adc9}.group-heading small{color:#949caf}
.mobile-nav{background:#22252ff5;padding-inline:12px;gap:3px}.mobile-nav>button{min-width:0;font-size:10px}.mobile-nav>button.active{background:#45313977}.mobile-nav>button[data-view=groups].active{color:#a8caff;background:#34486677}.mobile-nav>button[data-view=habits].active{color:#cbb8ff;background:#44376177}.mobile-nav>button[data-view=history].active{color:#f4ce83;background:#57462c77}.mobile-nav>.mobile-add{min-width:47px;flex:0 0 47px;margin-left:4px;min-height:51px}.mobile-nav>button[data-view=groups] svg{color:#a8caff}.mobile-nav>button[data-view=habits] svg{color:#cbb8ff}.mobile-nav>button[data-view=history] svg{color:#f4ce83}.icon-button:hover{background:#343c50}
.add-mode-tabs{display:flex;padding:4px;background:#1c1f2a;border:1px solid #3c4357;border-radius:13px;margin-bottom:16px;gap:4px}.add-mode-tabs button{flex:1;min-height:38px;border-radius:10px;font-size:14px;color:#aab4ca}.add-mode-tabs button.active{background:#3a4259;color:#e4eafa}.add-mode-tabs button[data-add-mode=groups].active{color:#a8caff}.dialog-heading p:empty{display:none}.suggestion-heading{display:none}.suggestion .round-add{color:#ffb4a0;border-color:#74534f}.suggestion .category-tag{font-size:10px}.suggestion-name small{font-size:11px;color:#959fb6}.switch-option input{background:#51596c}.switch-option input:checked{background:#b5a1ed}.switch-option input:checked:after{background:#342348}.settings-card h2 svg{color:#b5cafa}.settings-demo p{font-size:11px;color:#9a9fb6;padding:12px}
.collection-summary{font-size:14px;color:#b3bbd0;margin:3px 0 17px}.groups-grid{display:grid;gap:13px}.group-card{border:1px solid color-mix(in srgb,var(--group),transparent 65%);border-radius:18px;background:color-mix(in srgb,var(--group),#20242e 93%);overflow:hidden}.group-card-main{display:flex;align-items:center;gap:12px;width:100%;min-height:113px;padding:18px 15px;text-align:left}.group-card-copy{flex:1;min-width:0}.group-card-copy strong{display:block;color:#eeedf6;font-size:17px;font-weight:600;overflow-wrap:anywhere}.group-card-copy small{display:block;color:var(--group);font-size:12px;margin-top:4px}.group-card-copy>span{display:block;font-size:11px;color:#a3adc6;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-card-main>svg{width:17px;height:17px;color:var(--group)}.group-symbol{display:grid;place-items:center;width:43px;height:44px;flex-shrink:0;background:color-mix(in srgb,var(--group),transparent 88%);border-radius:14px;color:var(--group)}.group-symbol svg{width:23px;height:23px}.group-card-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border-top:1px solid color-mix(in srgb,var(--group),transparent 80%);padding:12px;min-height:44px;font-size:13px;color:var(--group)}.group-card-add svg{width:16px;height:16px}
.group-result{display:flex;align-items:center;gap:11px;width:100%;padding:14px 0;text-align:left;border-bottom:1px solid #3e465a}.group-result>span:nth-child(2){flex:1;min-width:0}.group-result strong{display:block;font-size:15px;font-weight:550}.group-result small{display:block;font-size:11px;color:#9eaac4;margin-top:5px}.group-result>svg{width:18px;height:18px;color:var(--group)}.group-colors{display:flex;gap:12px;margin:18px 0}.group-colors button{display:grid;place-items:center;background:var(--swatch);color:#26304b;min-width:34px;min-height:34px;border-radius:50%;border:3px solid transparent}.group-colors button[aria-pressed=true]{outline:2px solid var(--swatch);outline-offset:3px}.group-colors button svg{width:17px;height:17px;opacity:0}.group-colors button[aria-pressed=true] svg{opacity:1}.group-search-results{margin:0 0 17px;max-height:190px;overflow:auto}.group-search-result{display:flex;align-items:center;gap:10px;width:100%;padding:9px 3px;min-height:47px;text-align:left;font-size:13px;border-bottom:1px solid #3a4154}.group-search-result>span{flex:1}.group-search-result small{color:#909ebd;font-size:10px;margin-left:9px}.group-search-result svg{width:17px;height:17px;color:#adcbff}.group-entries{border-top:1px solid #424a60}.group-entry{display:flex;align-items:center;gap:10px;padding:13px 1px;border-bottom:1px solid #363e52;min-height:68px}.group-entry-symbol{display:flex;color:var(--cat);width:25px}.group-entry-symbol svg{width:22px;height:22px}.group-entry-copy{flex:1;min-width:0}.group-entry-copy strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere}.group-entry-copy small{display:block;color:var(--cat);font-size:10px;margin-top:4px}.group-entry-qty{width:66px;padding:10px 6px;min-height:42px;font-size:16px;text-align:center;color:var(--cat);background:#2a3040;border-color:#465069;flex-shrink:0}.group-entry>.icon-button{min-width:30px;min-height:42px;color:#bdaccb}.group-entry>.icon-button svg{width:17px;height:17px}.entry-select{appearance:auto;accent-color:#a8caff;width:23px;height:23px;min-height:23px;padding:0;margin:0 5px 0 0;flex-shrink:0}.already-present{opacity:.48}.group-selection-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#b2beda;margin-bottom:11px;gap:10px}.group-selection-toolbar button{font-size:12px;color:#a8caff;min-height:42px;padding:4px}.group-selection-toolbar+ .group-entries{margin-top:2px}#group-sheet .button-primary{background:var(--group);border-color:var(--group);color:#263049}#group-sheet .dialog-footer{margin-top:18px}
.toast.product-notification{display:flex;align-items:center;gap:11px;white-space:normal;background:#303446;color:#f1eef8;border:1px solid #657297;padding:12px 15px;max-width:min(calc(100vw - 28px),510px)}.notice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#61433f;color:#ffb4a0;flex-shrink:0}.notice-copy{min-width:0}.notice-copy strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}.notice-copy small{display:block;color:#b7bed3;font-size:11px;margin-top:3px}.notice-checked .notice-icon{background:#35534e;color:#b9dfcc}.empty-state .empty-icon{background:#3c3c58;color:#cbb8ff}.empty-state h2{font-size:20px}.empty-state .button{margin-top:20px}.no-results{color:#a4afc7}
@media(max-width:360px){.mobile-nav{padding-inline:9px}.mobile-nav>button{min-width:0;font-size:9px}.mobile-nav>.mobile-add{min-width:43px;flex-basis:43px;margin-left:2px}.group-toggle{font-size:13px;padding:9px 8px;gap:4px}.group-toggle .toggle-state{display:none}#list-sort{font-size:14px}.quantity{font-size:14px;max-width:72px}.item-category-mark{display:none}.row-detail{gap:5px}.item-age{font-size:10px}.group-entry{gap:7px}.group-entry-qty{width:59px}.group-entry-copy strong{font-size:13px}.group-result small{font-size:10px}.group-symbol{width:36px;height:38px}.group-selection-toolbar{font-size:12px}}

/* Shared surfaces keep every view, sheet and control in the selected palette. */
:root{
  --page-bg:#111319;--bg:#191b22;--surface:#23262f;--raised:#2b2f3d;
  --line:#3c4253;--soft-line:#ffffff0a;--text:#f4f0ed;--muted:#a9a9b5;
  --secondary:#b6bed2;--subtle:#8e97af;--header:#191b22f5;--nav:#22252ff5;
  --input-bg:#2b2e3a;--input-line:#4b5265;--hover:#343c50;
  --checked-bg:#1d2028;--checked-text:#8992a9;--checked-detail:#7f899f;
  --check-bg:#1d2029;--check-line:#656d82;--check-fill:#3d5e58;--check-mark:#b8e0cf;
  --blue:#a8caff;--violet:#cbb8ff;--amber:#f4ce83;--gear-bg:#2b3242;
  --button-bg:#303545;--button-text:#e0d8de;--danger-bg:#392b2c;--danger-text:#efb8ab;
  --empty-bg:#242a37;--empty-icon:#3c3c58;--backdrop:#080b16a8;
  --shadow:#0003;--sheet-shadow:#0006;--pill-bg:#1c1f2a;--pill-active:#3a4259;
  --notice-bg:#303446;--notice-border:#657297;--notice-icon:#61433f;
  --switch-bg:#51596c;--switch-knob:#c6c9d6;--switch-active:#b5a1ed;--switch-active-knob:#342348;
}
:root[data-theme=pastel]{
  color-scheme:light;--page-bg:#f0ebf2;--bg:#fbf7f3;--surface:#fffdfb;--raised:#f2ecf3;
  --line:#e0d7e1;--soft-line:#eae3e9;--text:#353141;--muted:#766d7e;
  --secondary:#655c71;--subtle:#796c80;--header:#fbf7f3f5;--nav:#faf6faf5;
  --input-bg:#f8f2f3;--input-line:#d8cbdc;--hover:#eee5f1;
  --checked-bg:#f0ecf0;--checked-text:#8a7e8d;--checked-detail:#8a7e8d;
  --check-bg:#fffcfa;--check-line:#bdaec4;--check-fill:#c2ddd2;--check-mark:#396357;
  --accent:#f1b29e;--ink:#4c302d;--orange:#9b692a;
  --blue:#52688e;--violet:#776194;--amber:#8e6b30;--gear-bg:#e9eaf8;
  --button-bg:#eee8f2;--button-text:#554b65;--danger-bg:#fae7e5;--danger-text:#964e4a;
  --empty-bg:#f3edf7;--empty-icon:#e5daf3;--backdrop:#3f344d65;
  --shadow:#694e7312;--sheet-shadow:#5b3e6026;--pill-bg:#eee7f0;--pill-active:#fffbff;
  --notice-bg:#fffaf7;--notice-border:#ddc9d3;--notice-icon:#f7dacf;
  --switch-bg:#d4cadc;--switch-knob:#fffdfd;--switch-active:#c6b2e3;--switch-active-knob:#5c4678;
}
body{background:var(--page-bg)}
.app-shell{border-color:var(--line);box-shadow:0 0 70px var(--shadow)}
.topbar{background:var(--header);border-bottom-color:var(--soft-line)}
.mobile-nav{background:var(--nav);border-color:var(--line)}
.mobile-nav>button{color:var(--subtle)}
.mobile-nav>button[data-view=groups] svg{color:var(--blue)}
.mobile-nav>button[data-view=habits] svg{color:var(--violet)}
.mobile-nav>button[data-view=history] svg{color:var(--amber)}
.mobile-nav>button[data-view=groups].active{color:var(--blue)}
.mobile-nav>button[data-view=habits].active{color:var(--violet)}
.mobile-nav>button[data-view=history].active{color:var(--amber)}
#open-settings,.theme-toggle{background:var(--gear-bg);border:1px solid var(--line);color:var(--blue);box-shadow:none}
.icon-button{color:var(--secondary)}
.icon-button:hover,.round-add:hover,.search-toggle[aria-pressed=true]{background:var(--hover)}
.cart-count,.completed-heading button,.completed-heading .archive-button,.collection-summary,
.catalog-count,.field,.group-selection-toolbar,.dialog-heading p{color:var(--secondary)}
.group-toggle,#list-sort{background:var(--surface);border-color:var(--line);color:var(--text)}
.group-toggle[aria-pressed=true]{background:#a8caff;border-color:#a8caff;color:#24304a}
.search-toggle{color:var(--blue)}
.classic-list,.product-card,.settings-card{background:var(--surface);border-color:var(--line)}
.item-row+.item-row,.switch-option+.switch-option{border-color:var(--soft-line)}
.item-row:active{background:var(--hover)}
.item-name{color:var(--text)}
.row-detail .item-note,.item-note,.item-age,.history-date,.section-note,.optional,
.suggestion-name small,.group-result small,.group-search-result small,.group-heading small,
.account-member small,.no-results{color:var(--subtle)}
.group-heading:after{background:var(--line)}
.check-button:before{background:var(--check-bg);border-color:var(--check-line)}
.item-row.checked{background:var(--checked-bg)}
.checked .check-button:before{background:var(--check-fill);border-color:var(--check-fill)}
.checked .check-button svg{color:var(--check-mark)}
.checked .item-name{color:var(--checked-text);text-decoration-color:var(--checked-text)}
.checked .item-note,.checked .item-age{color:var(--checked-detail)}
.checked .quantity{color:var(--checked-text);background:var(--raised)}
.repeat-mini{color:var(--violet)}
.urgent-mini{color:var(--orange)}
.button{background:var(--button-bg);color:var(--button-text);border-color:var(--line)}
.button:hover{background:var(--hover)}
.button-primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.button-primary:hover{background:color-mix(in srgb,var(--accent),white 15%)}
.button-danger{background:var(--danger-bg);color:var(--danger-text);border-color:color-mix(in srgb,var(--danger-text),transparent 70%)}
.empty-state{background:var(--empty-bg);border-color:var(--line)}
.empty-state .empty-icon{background:var(--empty-icon);color:var(--violet)}
.product-emoji{background:var(--raised)}
.round-add,.round-add.is-added{border-color:var(--line);color:var(--blue)}
.round-add.is-added{color:var(--subtle)}
input,select{background:var(--input-bg);border-color:var(--input-line);color:var(--text)}
input::placeholder{color:var(--subtle)}
.search-field{background:var(--input-bg);border-color:var(--input-line)}
.search-field>svg{color:var(--subtle)}
.search-field input{background:transparent}
dialog{background:var(--surface);border-color:var(--line);box-shadow:0 -20px 100px var(--sheet-shadow)}
dialog::backdrop{background:var(--backdrop)}
.dialog-handle{background:var(--input-line)}
.dialog-heading>.icon-button{background:var(--raised)}
.dialog-footer{background:var(--surface);border-color:var(--line)}
.suggestion,.group-result,.group-entries,.group-entry,.group-search-result,.account-member{border-color:var(--line)}
.suggestion .round-add{color:var(--ink);border-color:color-mix(in srgb,var(--accent),transparent 40%);background:color-mix(in srgb,var(--accent),var(--surface) 88%)}
:root:not([data-theme=pastel]) .suggestion .round-add{color:var(--accent)}
.suggestion-create,.group-selection-toolbar button,.group-search-result svg{color:var(--blue)}
.suggestion-create .round-add{background:var(--raised);border-color:var(--line)}
.item-options{border-color:var(--line)}
.option-icon,.settings-card h2 svg{color:var(--blue)}
.switch-option{min-height:58px}
.switch-option input{background:var(--switch-bg)}
.switch-option input:after{background:var(--switch-knob)}
.switch-option input:checked{background:var(--switch-active)}
.switch-option input:checked:after{background:var(--switch-active-knob)}
.add-mode-tabs{background:var(--pill-bg);border-color:var(--line)}
.add-mode-tabs button{color:var(--muted)}
.add-mode-tabs button.active{background:var(--pill-active);color:var(--text)}
.add-mode-tabs button[data-add-mode=groups].active{color:var(--blue)}
.group-card{background:color-mix(in srgb,var(--group),var(--surface) 95%)}
.group-card-copy strong{color:var(--text)}
.group-card-copy>span{color:var(--subtle)}
.group-entry-qty{background:var(--input-bg);border-color:var(--input-line)}
.group-entry>.icon-button{color:var(--secondary)}
.entry-select{accent-color:var(--blue)}
.setting-status{color:var(--secondary)}
.settings-card select{margin:0}
.settings-demo p{color:var(--subtle)}
.settings-demo button{color:var(--blue)}
.settings-card .install-hint{font-size:11px;color:var(--muted);margin:12px 0 0}
.toast{border-color:var(--line);box-shadow:0 10px 35px var(--shadow)}
.toast.product-notification{background:var(--notice-bg);color:var(--text);border-color:var(--notice-border)}
.notice-icon{background:var(--notice-icon);color:var(--ink)}
:root:not([data-theme=pastel]) .notice-icon{color:var(--accent)}
.notice-copy small{color:var(--secondary)}
.notice-checked .notice-icon{background:var(--check-fill);color:var(--check-mark)}
.login-page{background:var(--bg);padding:calc(76px + env(safe-area-inset-top)) 28px 54px}
.login-card{padding:0}
.login-card h1{margin-bottom:28px}
.login-card>img{margin-bottom:24px;border-radius:18px}
.form-error{color:var(--danger-text)}
.theme-toggle{position:fixed;top:calc(16px + env(safe-area-inset-top));right:max(20px,calc((100vw - 410px)/2));width:44px;height:44px;z-index:5}
.theme-toggle .moon-icon{display:none}
[data-theme=pastel] .theme-toggle .sun-icon{display:none}
[data-theme=pastel] .theme-toggle .moon-icon{display:block}
.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}
.theme-choice{padding:10px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;font-size:13px;font-weight:550;background:var(--bg);text-align:left}
.theme-choice[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.theme-choice-label{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%}
.theme-choice-label svg{width:16px;height:16px;color:var(--blue);visibility:hidden}
.theme-choice[aria-pressed=true] .theme-choice-label svg{visibility:visible}
.theme-sample{width:100%;height:58px;padding:9px;border-radius:8px;display:flex;flex-direction:column;gap:6px;background:#20232e}
.theme-sample>i{height:9px;width:75%;background:#484b5e;border-radius:4px;position:relative;padding-left:10px}
.theme-sample>i:before{content:'';position:absolute;left:0;top:0;height:9px;width:9px;background:#b5a1ed;border-radius:3px}
.theme-sample>i:nth-child(2){width:92%;background:#363b4e}
.theme-sample>i:nth-child(2):before{background:#a8caff}
.theme-sample>i:nth-child(3){width:60%;background:#363b4e}
.theme-sample>i:nth-child(3):before{background:#ffb4a0}
.theme-sample.pastel-sample{background:#f7f0ef;border:1px solid #e5dce5}
.pastel-sample>i{background:#e2d6eb}
.pastel-sample>i:nth-child(2){background:#dbe5f5}
.pastel-sample>i:nth-child(3){background:#f0d6cd}
[data-theme=pastel] [style*="--cat"]{--cat-ink:color-mix(in srgb,var(--cat),#26324d 65%)}
[data-theme=pastel] .category-tag,[data-theme=pastel] .item-category-mark,[data-theme=pastel] .group-heading,
[data-theme=pastel] .group-entry-symbol,[data-theme=pastel] .group-entry-copy small,[data-theme=pastel] .group-entry-qty{color:var(--cat-ink)}
[data-theme=pastel] .quantity{color:var(--cat-ink);background:color-mix(in srgb,var(--cat),white 70%)}
[data-theme=pastel] .checked .quantity{color:var(--checked-text);background:var(--raised)}
[data-theme=pastel] [style*="--group"]{--group-ink:color-mix(in srgb,var(--group),#26324d 65%)}
[data-theme=pastel] .group-card-copy small,[data-theme=pastel] .group-symbol,[data-theme=pastel] .group-card-main>svg,
[data-theme=pastel] .group-card-add,[data-theme=pastel] .group-result>svg{color:var(--group-ink)}
[data-theme=pastel] .group-symbol{background:color-mix(in srgb,var(--group),white 65%)}
[data-theme=pastel] .mobile-nav>button.active{color:#805342;background:#f6e0d6}
[data-theme=pastel] .mobile-nav>button[data-view=groups].active{color:var(--blue);background:#e1eafa}
[data-theme=pastel] .mobile-nav>button[data-view=habits].active{color:var(--violet);background:#ece0f4}
[data-theme=pastel] .mobile-nav>button[data-view=history].active{color:var(--amber);background:#f6ecd5}
[data-theme=pastel] .group-toggle[aria-pressed=true]{background:#dfE9fa;border-color:#c1d0eb;color:var(--blue)}
[data-theme=pastel] .toggle-state{background:#d4cadc}
[data-theme=pastel] .toggle-state:after{background:#fffdfd}
[data-theme=pastel] .group-toggle[aria-pressed=true] .toggle-state{background:#a5bce2}

/* The same category symbols and tints appear in the field and phone picker. */
.category-field{display:flex;flex-direction:column;gap:7px}
.category-trigger{display:flex;align-items:center;justify-content:space-between;gap:7px;width:100%;min-height:48px;padding:11px 10px;border:1px solid color-mix(in srgb,var(--cat),var(--line) 45%);border-radius:12px;background:color-mix(in srgb,var(--cat),var(--surface) 82%);color:var(--cat);text-align:left;font-size:14px}
#category-value{display:flex;align-items:center;gap:8px;min-width:0;line-height:1.3}
#category-value>span{overflow-wrap:anywhere}
#category-value svg{width:20px;height:20px}
.category-trigger>svg{width:15px;height:15px;flex-shrink:0}
.category-list{display:grid;gap:8px;padding:0 1px 4px}
.category-option{display:flex;align-items:center;gap:12px;min-height:53px;width:100%;padding:11px 14px;text-align:left;border:1px solid color-mix(in srgb,var(--cat),var(--line) 60%);border-radius:13px;background:color-mix(in srgb,var(--cat),var(--surface) 85%);color:var(--cat);font-size:15px}
.category-option>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.category-option-icon,.category-option-check{display:flex;flex-shrink:0}
.category-option-icon svg{width:23px;height:23px}
.category-option-check svg{width:18px;height:18px;visibility:hidden}
.category-option[aria-selected=true]{border-color:var(--cat);box-shadow:inset 0 0 0 1px var(--cat)}
.category-option[aria-selected=true] .category-option-check svg{visibility:visible}
.category-option:hover{background:color-mix(in srgb,var(--cat),var(--surface) 75%)}
#category-sheet{scroll-padding-top:82px}
#category-sheet .dialog-heading{position:sticky;top:-10px;z-index:2;background:var(--surface);padding:12px 0;margin-bottom:12px;align-items:center}
#category-sheet .dialog-heading>.icon-button{margin:0}
[data-theme=pastel] .category-trigger,[data-theme=pastel] .category-option{color:var(--cat-ink);background:color-mix(in srgb,var(--cat),white 72%)}
[data-theme=pastel] .category-option[aria-selected=true]{border-color:var(--cat-ink);box-shadow:inset 0 0 0 1px var(--cat-ink)}
[data-theme=pastel] .category-option:hover{background:color-mix(in srgb,var(--cat),white 55%)}

/* Subtle aisle colors on pending items; completed purchases keep their gray. */
.item-row:not(.checked){background:color-mix(in srgb,var(--cat),var(--surface) 90%)}
.item-row:not(.checked):active{background:color-mix(in srgb,var(--cat),var(--surface) 82%)}
.item-row:not(.checked) :is(.item-age,.item-note){color:#adb4c6}
[data-theme=pastel] .item-row:not(.checked){background:color-mix(in srgb,var(--cat),var(--surface) 86%)}
[data-theme=pastel] .item-row:not(.checked):active{background:color-mix(in srgb,var(--cat),var(--surface) 78%)}
[data-theme=pastel] .item-row:not(.checked) :is(.item-age,.item-note){color:#736579}

/* A shared touch keypad edits a draft; only confirmation updates the field. */
[data-quantity-popup]{cursor:pointer;caret-color:transparent;text-align:center;font-weight:600;color:var(--text)}
#quantity-sheet{width:min(100%,410px);padding-inline:22px}
#quantity-sheet .dialog-heading{margin-bottom:15px;align-items:center}
#quantity-sheet .dialog-heading h2{font-size:23px}
#quantity-product{max-width:260px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.quantity-display{display:flex;align-items:baseline;justify-content:center;gap:10px;min-height:91px;padding:13px 12px;border:1px solid color-mix(in srgb,var(--cat),var(--line) 65%);border-radius:18px;background:color-mix(in srgb,var(--cat),var(--surface) 90%);margin-bottom:13px}
#quantity-value{font-size:52px;line-height:1.15;font-weight:650;letter-spacing:-1.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;outline:0}
#quantity-value.quantity-long{font-size:30px;letter-spacing:-.7px}
#quantity-value.quantity-placeholder{color:var(--subtle)}
#quantity-unit-label{font-size:17px;color:var(--secondary);overflow-wrap:anywhere;max-width:45%}
.quantity-units{display:flex;gap:6px;overflow:auto;scrollbar-width:none;padding:2px 1px 5px;margin-bottom:13px}
.quantity-unit{min-height:36px;flex:1 0 auto;border:1px solid var(--line);border-radius:10px;padding:7px 10px;color:var(--secondary);font-size:13px;white-space:nowrap}
.quantity-unit[aria-pressed=true]{color:var(--text);background:var(--raised);border-color:var(--secondary)}
.quantity-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.quantity-key{min-height:58px;display:flex;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:15px;background:var(--raised);color:var(--text);font-size:26px;font-weight:550;font-variant-numeric:tabular-nums}
.quantity-key:hover{background:var(--hover)}
.quantity-key:active{background:color-mix(in srgb,var(--cat),var(--surface) 65%);transform:scale(.97)}
.quantity-key.quantity-erase{font-size:12px;font-weight:500;gap:5px;color:var(--secondary)}
.quantity-erase svg{width:19px;height:19px}
#quantity-confirm{width:100%;margin-top:15px;min-height:50px;font-size:15px}
[data-theme=pastel] .quantity-display{background:color-mix(in srgb,var(--cat),white 80%)}
[data-theme=pastel] .quantity-unit[aria-pressed=true]{background:color-mix(in srgb,var(--cat),white 65%);border-color:var(--cat-ink);color:var(--cat-ink)}
[data-theme=pastel] .quantity-key{background:var(--bg)}
@media(max-height:700px){#quantity-sheet{padding-top:7px}#quantity-sheet .dialog-heading{margin-bottom:10px}.quantity-display{min-height:73px;padding:10px;margin-bottom:9px}#quantity-value{font-size:43px}.quantity-units{margin-bottom:8px}.quantity-key{min-height:47px}.quantity-keypad{gap:6px}#quantity-confirm{margin-top:10px}}

/* Move the pending count into the existing app bar to free a full list row. */
.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) 44px;gap:8px}
.topbar-actions{grid-column:3;justify-content:flex-end}
.header-count{grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:var(--text);line-height:1}
.header-count strong{font-size:30px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.header-count>span{font-size:10px;color:var(--secondary)}
.topbar .sync-status{position:absolute;left:65px;bottom:3px;font-size:9px;max-width:140px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:360px){.header-count strong{font-size:27px}.header-count>span{font-size:9px}.topbar .sync-status{left:53px;font-size:8px;max-width:110px}}

/* A discreet connection light stays beside the settings gear, without a caption. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.topbar-actions{position:relative}
.topbar .sync-status{inset:2px 0 auto auto;width:10px;height:10px;max-width:none;overflow:visible;pointer-events:auto}
.topbar .sync-status i{display:block;width:8px;height:8px;border-radius:50%;background:#8190a4;box-shadow:0 0 0 3px var(--bg)}
.sync-status[data-state=online] i{background:#82cba6}
.sync-status[data-state=pending] i{background:#efc579;animation:connection-pulse 1.4s ease-in-out infinite}
.sync-status[data-state=offline] i{background:#eea276}
.sync-status[data-state=auth] i{background:#ee8793}
.sync-status[data-state=conflict] i{background:#ee8793}
[data-theme=pastel] .sync-status[data-state=online] i{background:#398a68}
[data-theme=pastel] .sync-status[data-state=pending] i{background:#b98223}
[data-theme=pastel] .sync-status[data-state=offline] i{background:#b96b3c}
[data-theme=pastel] .sync-status[data-state=auth] i{background:#b54d61}
@keyframes connection-pulse{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.sync-status[data-state=pending] i{animation:none}}

/* Color is carried by the artwork itself, with readable, consistent outlines. */
.category-icon{flex-shrink:0;filter:drop-shadow(0 1px 1px #0002)}
.item-category-mark .category-icon{width:24px;height:24px;opacity:1}
.group-heading .category-icon{width:25px;height:25px}
.category-tag .category-icon{width:17px;height:17px}
.suggestion .category-tag .category-icon{display:block;width:16px;height:16px}
.category-option-icon .category-icon{width:34px;height:34px}
.category-option-icon{width:40px;height:40px;flex-basis:40px}
#category-value .category-icon{width:27px;height:27px}
.group-entry-symbol .category-icon{width:28px;height:28px}
.checked .category-icon{filter:grayscale(.65);opacity:.75}
[data-theme=pastel] .category-icon{filter:none}
