:root{font-family:Inter,system-ui,-apple-system,Roboto,"Segoe UI",sans-serif;color:#17233b;background:#f4f7fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}.app{min-height:100dvh;display:flex;max-width:1450px;margin:auto;background:#fff}.sidebar{width:258px;flex:none;background:#f8faff;border-right:1px solid #e8edf6;padding:28px 16px;display:flex;flex-direction:column}.brand{font-size:21px;display:flex;gap:12px;align-items:center;font-weight:800;margin:6px 12px 32px}.nav{border:0;background:transparent;text-align:left;padding:14px 16px;border-radius:13px;margin-bottom:7px;color:#4b556b;font-weight:650}.nav.active{background:#e8f0ff;color:#2563eb}.sidehint{margin:auto 12px 12px;color:#98a2b7;font-size:13px;line-height:1.6}main{width:100%;min-width:0;padding:0 45px 65px}header{height:80px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid #eef1f7}.mobile-brand{display:none}.connection{font-size:12px;color:#348465}.connection.offline{color:#c65959}.page{max-width:760px;margin:30px auto;display:none}.page.active{display:block}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:10px}h1{font-size:26px;letter-spacing:-.7px;margin:0 0 24px}.counter{font-size:12px;background:#eef4ff;border-radius:20px;padding:7px 12px;color:#376bd6;margin-bottom:24px;white-space:nowrap}.searchbox{position:relative;z-index:5}.searchrow{display:flex;align-items:center;background:white;border:2px solid #4886f5;border-radius:16px;box-shadow:0 5px 15px #2563eb15;overflow:hidden}.searchicon{font-size:30px;color:#8494a9;padding:0 12px;line-height:1}.searchrow input{border:0;outline:0;min-width:0;flex:1;height:58px;background:transparent;font-size:17px}.primary{background:#3479ec;color:white;border:0;border-radius:12px;font-weight:700;padding:12px 16px}.primary:hover{background:#1d5ece}.addbutton{font-size:26px;margin:6px;min-width:48px;height:46px;padding:0}.suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;max-height:365px;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 12px 38px #1429572e;border:1px solid #e2e9f4;padding:5px}.hidden{display:none!important}.suggestion{width:100%;background:none;border:0;border-radius:9px;padding:10px 12px;display:flex;align-items:center;gap:12px;text-align:left}.suggestion.active,.suggestion:hover{background:#e8f1ff}.emoji{font-size:24px;width:35px;text-align:center;flex:none}.suggestion strong{display:block;font-size:15px}.suggestion small{color:#79859a;font-size:12px}.suggestion .enter{margin-left:auto;color:#a5afbe}.tip,.bottomnote,.muted{font-size:13px;color:#7e8ba1;line-height:1.6}.tip{margin:15px 2px 24px}.bottomnote{margin:20px 3px}.shopping{display:flex;flex-direction:column;gap:11px}.group{overflow:hidden;border-radius:15px;border:1px solid #eaf0f8;background:#fff}.grouphead{padding:10px 16px;background:#f5f8fd;font-size:13px;font-weight:750;display:flex;gap:8px;align-items:center}.grouphead span:last-child{margin-left:auto;color:#9ca7bb}.item{display:flex;gap:13px;align-items:center;min-height:57px;padding:9px 14px;border-top:1px solid #f1f3f8}.item input[type=checkbox]{width:22px;height:22px;accent-color:#2877eb;flex:none;cursor:pointer}.itemtext{flex:1;min-width:0}.itemtext strong{display:block;font-size:15px;font-weight:600;overflow-wrap:anywhere}.itemtext small{color:#8c97a8}.item .del{border:0;background:transparent;color:#a4b0c4;font-size:22px;padding:5px}.item .del:hover{color:#d84545}.empty{text-align:center;padding:65px 10px;color:#68758c;font-size:48px}.empty h2{font-size:20px;color:#273651;margin-bottom:0}.empty p{font-size:14px}.catlist{display:flex;flex-direction:column;gap:8px}.catrow{display:flex;align-items:center;gap:12px;border:1px solid #eef1f7;border-radius:12px;padding:9px 10px}.catrow strong{flex:1;font-size:15px;font-weight:600}.catrow button{border:0;background:#f0f4fc;color:#5270a2;border-radius:9px;min-width:35px;height:35px}.newcat{display:flex;gap:8px;margin-top:20px}.newcat input{border:1px solid #dce4f0;border-radius:10px;padding:12px;min-width:0}.newcat #catemoji{width:62px;text-align:center}.newcat #catname{flex:1}dialog{border:0;border-radius:20px;padding:24px;width:min(430px,calc(100% - 25px));box-shadow:0 20px 60px #0004}dialog::backdrop{background:#101f3d80}dialog h2{margin:0 0 20px}dialog label{display:block;margin:13px 0;color:#526076;font-size:13px;font-weight:600}dialog label input,dialog select{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #dae2ed;border-radius:10px}dialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}dialog .actions button:not(.primary){border:0;background:#eef2f8;border-radius:10px;padding:12px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#233450;color:white;padding:10px 17px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100}.toast.show{opacity:1}.bottomnav{display:none}@media(max-width:700px){.app{display:block}.sidebar{display:none}main{padding:0 16px 94px}header{height:70px;margin:0 -16px;padding:0 17px}.mobile-brand{display:flex;margin:0;font-size:19px}.page{margin:23px auto}h1{font-size:22px;margin-bottom:20px}.counter{margin-bottom:20px}.searchrow input{height:54px;font-size:16px}.tip{font-size:12px}.grouphead{padding:10px 13px}.item{padding:10px 12px;gap:9px}.itemtext strong{font-size:14px}.bottomnav{display:flex;position:fixed;z-index:10;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #eaf0f8;box-shadow:0 -4px 16px #1c315012}.bottomnav button{flex:1;border:0;background:transparent;color:#8c97ad;font-size:11px;font-weight:650;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottomnav button span{font-size:22px}.bottomnav button.active{color:#246be8}.catrow{gap:7px}.catrow button{min-width:30px}.catrow strong{font-size:14px}.newcat{flex-wrap:wrap}.newcat button{width:100%}.toast{bottom:86px;white-space:nowrap}}

/* v2: directly editable amount per shopping-list item */
.quantity-input{width:116px;min-width:0;flex:none;border:1px solid #dae4f1;background:#fbfdff;border-radius:10px;padding:9px 10px;font-size:14px;color:#17233b;outline:none}
.quantity-input:focus{border-color:#3479ec;box-shadow:0 0 0 3px #3479ec20;background:#fff}
.quantity-input:disabled{opacity:.6}
.custom-suggestion{border-top:1px solid #edf1f8;margin-top:3px;color:#246be8}
@media(max-width:700px){.quantity-input{width:86px;font-size:13px;padding:9px 7px}.item .emoji{width:26px;font-size:20px}.item .del{padding:3px}.item{gap:7px}}
