@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-cyrillic-wght-normal-5WvUvBgz.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-vietnamese-wght-normal-Cabi7G8-.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-ext-wght-normal-CT1r92Rl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-wght-normal-BOwq7MWX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-ext-wght-normal-CO5hGrJv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-wght-normal-EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-vietnamese-wght-normal-k7S-YeeD.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-ext-wght-normal-BsZE-iaG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-wght-normal-l_AIctKy.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent:#6b7a39;--accent-d:color-mix(in srgb, var(--accent), #000 16%);--accent-l:color-mix(in srgb, var(--accent), #fff 14%);--accent-tint:color-mix(in srgb, var(--accent), #fff 86%);--ink:#18241e;--muted:#788a80;--line:#14281e14;--card:#fff;--green:#1f9d57;--yellow:#e0a400;--red:#e0463c;--radius:16px;--shadow-sm:0 1px 2px #14281e0f, 0 2px 6px #14281e0d;--shadow-md:0 10px 26px #14281e1f;--font-body:"Montserrat Variable", system-ui, -apple-system, sans-serif;--font-display:"Playfair Display Variable", Georgia, "Times New Roman", serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(130% 70% at 50% -15%, var(--accent-tint), transparent 55%), linear-gradient(180deg, #fbfaf6 0%, #eef2ee 100%);background-attachment:fixed;min-height:100vh;margin:0;overflow-x:hidden}button{cursor:pointer;font-family:inherit}.app{max-width:480px;min-height:100vh;margin:0 auto}.topbar{z-index:10;background:linear-gradient(150deg, var(--accent-l), var(--accent) 55%, var(--accent-d));color:#fff;box-shadow:var(--shadow-md);border-radius:0 0 24px 24px;padding:18px 16px 15px;position:sticky;top:0;overflow:hidden}.topbar:after{content:"";pointer-events:none;background:radial-gradient(85% 130% at 92% -25%,#ffffff47,#0000 60%);position:absolute;inset:0}.topbar .title{z-index:1;font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:.2px;text-align:center;justify-content:center;align-items:center;font-size:27px;font-weight:600;display:flex;position:relative}.nav{z-index:1;background:#ffffff29;border-radius:13px;gap:4px;margin-top:13px;padding:4px;display:flex;position:relative}.nav button{color:#ffffffd9;background:0 0;border:none;border-radius:10px;flex:1;padding:9px 6px;font-size:13px;font-weight:600;transition:background .18s,color .18s}.nav button.on{color:var(--accent-d);box-shadow:var(--shadow-sm);background:#fff}.content{padding:14px 0 92px}.tabs{gap:8px;padding:4px 16px 12px;display:flex}.tabs button{border:1px solid var(--line);background:var(--card);color:var(--muted);box-shadow:var(--shadow-sm);border-radius:13px;flex:1;padding:12px;font-size:14px;font-weight:700;transition:transform .12s,background .18s,color .18s}.tabs button.on{background:var(--accent);color:#fff;box-shadow:0 8px 18px color-mix(in srgb, var(--accent), transparent 62%);border-color:#0000}.tabs button:active{transform:scale(.98)}.toolbar{gap:8px;padding:0 16px 10px;display:flex}.search{border:1px solid var(--line);min-width:0;color:var(--ink);background-color:var(--card);box-shadow:var(--shadow-sm);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23788a80' stroke-width='2' stroke-linecap='round'><circle cx='8' cy='8' r='6'/><line x1='12.5' y1='12.5' x2='17' y2='17'/></svg>");background-position:13px;background-repeat:no-repeat;border-radius:13px;flex:1;padding:11px 14px 11px 40px;font-size:15px}.search:focus{border-color:var(--accent);outline:none}.add{background:var(--accent);color:#fff;white-space:nowrap;box-shadow:var(--shadow-sm);border:none;border-radius:13px;padding:0 17px;font-weight:800}.cat{align-items:center;gap:10px;margin:20px 16px 9px;display:flex}.cat-ico{width:32px;height:32px;box-shadow:var(--shadow-sm), inset 0 0 0 1px #fff6;border-radius:10px;place-items:center;font-size:17px;display:grid}.cat-name-h{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;min-width:0;font-size:18px;font-weight:600}.cat-count{color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:20px;margin-left:auto;padding:3px 11px;font-size:12px;font-weight:700}section{margin:0 12px}.row{background:var(--card);box-shadow:var(--shadow-sm);border-left:4px solid var(--row-accent,var(--line));border-radius:14px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;animation:.32s both rise;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.thumb{background:var(--accent-tint);border-radius:11px;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.pname{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:1px;min-width:0;font-size:15px;font-weight:700;display:flex}.pname small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px;font-weight:600}.badge{text-align:center;color:#fff;border-radius:13px;min-width:46px;padding:6px 11px;font-size:15px;font-weight:800;box-shadow:inset 0 0 0 2px #ffffff40}.badge.green{background:var(--green)}.badge.yellow{background:var(--yellow)}.badge.red{background:var(--red)}.pm{gap:5px;display:flex}.pm button{border:1px solid var(--line);width:36px;height:36px;color:var(--accent-d);box-shadow:var(--shadow-sm);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#fff;border-radius:11px;font-size:20px;font-weight:800;transition:transform .1s}.pm button:active{transform:scale(.88)}.empty{text-align:center;color:var(--muted);padding:28px 16px}.empty-wrap{text-align:center;padding:52px 24px}.empty-logo{width:120px;max-width:48%;height:auto;margin:4px auto 16px;display:block}.empty-title{font-family:var(--font-display);margin:0 0 6px;font-size:23px;font-weight:600}.empty-sub{color:var(--muted);margin:0 0 20px;font-size:14px}.empty-cta{background:var(--accent);color:#fff;box-shadow:var(--shadow-md);border:none;border-radius:14px;padding:13px 24px;font-size:15px;font-weight:800}.sheet-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0f1e1673;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:480px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:#fff;border-radius:22px 22px 0 0;max-height:92vh;animation:.26s cubic-bezier(.2,.8,.2,1) sheetUp;overflow:auto;box-shadow:0 -10px 40px #0f1e1633}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sheet-head strong{font-family:var(--font-display);font-size:20px;font-weight:600}.sheet .x{width:34px;height:34px;color:var(--muted);background:#eef1ee;border:none;border-radius:50%;font-size:16px}.sheet label{color:var(--muted);flex-direction:column;gap:5px;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.sheet input,.sheet select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;padding:11px;font-family:inherit;font-size:15px;font-weight:500}.sheet input:focus,.sheet select:focus{border-color:var(--accent);outline:none}.photo-edit{justify-content:center;margin-bottom:14px;display:flex}.thumb.big{width:96px;height:96px;box-shadow:var(--shadow-sm);border-radius:22px;font-size:36px}.qty-edit{gap:10px;display:flex}.qty-edit label{flex:1}.transfer{background:var(--accent-tint);border-radius:14px;margin:4px 0 14px;padding:12px}.transfer strong{font-size:13px}.transfer-row{gap:6px;margin-top:8px;display:flex}.transfer-row select{flex:1}.transfer-row input{width:74px}.transfer-row button{background:var(--accent);color:#fff;border:none;border-radius:12px;padding:0 16px;font-weight:800}.error{color:var(--red);margin:4px 0;font-size:13px;font-weight:700}.sheet-actions{gap:10px;margin-top:10px;display:flex}.sheet-actions button{border:none;border-radius:13px;flex:1;padding:13px;font-size:15px;font-weight:800}.sheet-actions .primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.sheet-actions .danger{color:var(--red);background:#fdecec}.screen{padding:6px 0}.cat-card{background:var(--card);box-shadow:var(--shadow-sm);border-radius:16px;margin:10px 14px;padding:14px}.cat-head{align-items:center;gap:10px;display:flex}.cat-name{border:none;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;flex:1;padding:4px 0;font-family:inherit;font-size:17px;font-weight:700}.cat-name:focus{border-bottom-color:var(--accent);outline:none}.cat-meta{align-items:flex-end;gap:14px;margin-top:12px;display:flex}.cat-meta label{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:700;display:flex}.cat-emoji{text-align:center;border:1px solid var(--line);border-radius:10px;width:56px;padding:7px;font-size:18px}.cat-meta input[type=color]{border:1px solid var(--line);background:#fff;border-radius:10px;width:48px;height:36px;padding:2px}.cat-thresholds{align-items:flex-end;gap:8px;margin-top:12px;display:flex}.cat-thresholds label{color:var(--muted);flex-direction:column;gap:3px;font-size:11px;font-weight:700;display:flex}.cat-thresholds input{border:1px solid var(--line);border-radius:10px;width:66px;padding:7px;font-family:inherit}.danger.small{color:var(--red);background:#fdecec;border:none;border-radius:10px;margin-left:auto;padding:9px 12px;font-weight:700}.hint{color:var(--muted);margin-top:8px;font-size:11.5px;display:block}.settings .card{background:var(--card);box-shadow:var(--shadow-sm);border-radius:16px;margin:10px 14px;padding:14px}.settings .card h3{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 12px;font-size:13px}.settings .card label{color:var(--muted);flex-direction:column;gap:5px;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.settings .card input{border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:11px;font-family:inherit;font-size:15px}.settings .card input:focus{border-color:var(--accent);outline:none}.settings .card input[type=color]{width:60px;height:38px;padding:2px}.settings .sheet-actions button{color:var(--ink);background:#eef1ee}.settings .sheet-actions .primary{background:var(--accent);color:#fff}
