:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f5f2eb;--paper-deep:#ebe6db;--surface:#ffffffdb;--surface-solid:#fffefb;--ink:#17201d;--ink-muted:#66716d;--line:#1e302a1c;--accent:#176b5b;--accent-deep:#105246;--accent-soft:#dcece5;--danger:#a64135;--danger-soft:#f6e5e0;--shadow:0 18px 50px #2a332d17;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-height:100%}body{min-width:320px;min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 90% 3%, #cee2d69e, transparent 29rem), radial-gradient(circle at -8% 36%, #eddaba6b, transparent 26rem), var(--paper);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit}button{color:inherit}button,input{-webkit-user-select:none;user-select:none}input{-webkit-user-select:text;user-select:text}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #176b5b42}button:disabled{cursor:not-allowed}svg{display:block}.app-shell{width:min(100%,760px);min-height:100dvh;padding-bottom:calc(26px + var(--safe-bottom));margin:0 auto}.app-header{z-index:10;padding:calc(14px + var(--safe-top)) 20px 12px;-webkit-backdrop-filter:blur(22px)saturate(150%);backdrop-filter:blur(22px)saturate(150%);background:#f5f2ebd1;border-bottom:1px solid #0000;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{color:#fffdf8;background:var(--accent);border-radius:15px;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 8px 18px #176b5b33}.brand-mark svg{width:27px;height:27px}.brand-copy{min-width:0}.brand-copy h1{letter-spacing:-.035em;margin:0;font-size:24px;font-weight:720;line-height:1.15}.brand-copy p{color:var(--ink-muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:13px;overflow:hidden}.icon-button,.close-button{cursor:pointer;border:1px solid var(--line);background:#ffffff9e;border-radius:15px;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.icon-button svg,.close-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:22px;height:22px}.icon-button:active,.close-button:active{background:#fffffff2;transform:scale(.96)}.app-main{padding:22px 20px 8px}.list-toolbar{justify-content:space-between;align-items:end;gap:18px;margin-bottom:17px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:750;line-height:1}.list-toolbar h2{letter-spacing:-.04em;margin:0;font-size:28px;font-weight:720;line-height:1.2}.primary-button,.secondary-button,.danger-button{cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:7px;min-height:46px;padding:0 18px;font-size:15px;font-weight:680;line-height:1;transition:transform .12s,background-color .12s,opacity .12s;display:inline-flex}.primary-button{color:#fff;border:1px solid var(--accent);background:var(--accent);box-shadow:0 8px 18px #176b5b29}.primary-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:18px;height:18px}.primary-button:active,.secondary-button:active,.danger-button:active{transform:scale(.975)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.56}.secondary-button{color:var(--ink);border:1px solid var(--line);background:#ffffffb3}.danger-button{color:#fff;border:1px solid var(--danger);background:var(--danger)}.product-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.product-card{background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffd1;border-radius:22px;grid-template-columns:minmax(0,1fr) auto;gap:16px 20px;padding:17px;animation:.28s both card-in;display:grid}.product-card-header{align-self:center;min-width:0}.product-name{letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:680;line-height:1.35;overflow:hidden}.product-unit{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px;display:block}.stock-control{border:1px solid var(--line);background:#f5f2ebc2;border-radius:16px;align-self:center;align-items:center;padding:4px;display:flex}.stock-button{cursor:pointer;width:46px;height:42px;color:var(--accent-deep);background:0 0;border:0;border-radius:12px;place-items:center;padding:0;font-size:24px;font-weight:480;line-height:1;display:grid}.stock-button:active:not(:disabled){background:var(--accent-soft)}.stock-button:disabled{color:#b6bcb8}.stock-button.plus{color:#fff;background:var(--accent)}.stock-button.plus:active:not(:disabled){background:var(--accent-deep)}.stock-button.plus:disabled{color:#ffffffa3;background:#a9b7b1}.stock-quantity{font-variant-numeric:tabular-nums;letter-spacing:-.04em;text-align:center;min-width:56px;padding:0 4px;font-size:21px;font-weight:760}.card-actions{border-top:1px solid var(--line);grid-column:1/-1;gap:8px;padding-top:13px;display:flex}.card-action{cursor:pointer;min-width:0;min-height:40px;color:var(--ink-muted);background:0 0;border:0;border-radius:11px;flex:1;padding:0 10px;font-size:13px;font-weight:650}.card-action:active{color:var(--accent-deep);background:var(--accent-soft)}.card-action.danger{color:var(--danger)}.card-action.danger:active{color:var(--danger);background:var(--danger-soft)}.empty-state{text-align:center;background:#ffffff85;border:1px solid #ffffffbf;border-radius:26px;padding:50px 26px 46px}.empty-icon{width:68px;height:68px;color:var(--accent);background:var(--accent-soft);border-radius:24px;place-items:center;margin:0 auto 18px;display:grid}.empty-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:42px;height:42px}.empty-state h3{letter-spacing:-.025em;margin:0;font-size:21px}.empty-state p{max-width:295px;color:var(--ink-muted);margin:9px auto 23px;font-size:14px;line-height:1.7}.app-footer{color:#828b87;justify-content:center;align-items:center;gap:8px;padding:27px 20px 4px;font-size:12px;display:flex}.app-footer span{background:#72a58f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #72a58f21}.sheet-dialog,.confirm-dialog{width:min(100% - 28px,430px);max-height:min(84dvh,700px);color:var(--ink);background:var(--surface-solid);border:0;border-radius:28px;margin:auto;padding:0;overflow:auto;box-shadow:0 30px 90px #15231e3d}.sheet-dialog[open],.confirm-dialog[open]{animation:.18s ease-out both dialog-in}.sheet-dialog::backdrop,.confirm-dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#161f1c66}.sheet-dialog form{display:contents}.dialog-header{justify-content:space-between;align-items:flex-start;gap:18px;padding:23px 23px 0;display:flex}.dialog-header h2{letter-spacing:-.04em;margin:0;font-size:25px;font-weight:730;line-height:1.2}.close-button{background:var(--paper);border-radius:13px;width:38px;height:38px}.close-button svg{width:19px;height:19px}.dialog-body{gap:18px;padding:23px;display:grid}.field{color:var(--ink-muted);gap:9px;font-size:13px;font-weight:650;display:grid}.field>input,.single-number-input{width:100%;height:52px;color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:14px;outline:0;padding:0 15px;font-size:17px;font-weight:580}.field>input::placeholder{color:#a3aca8;font-weight:480}.field>input:focus,.single-number-input:focus{border-color:#176b5b80;box-shadow:0 0 0 4px #176b5b17}.number-control{border:1px solid var(--line);background:var(--paper);border-radius:15px;grid-template-columns:52px minmax(0,1fr) 52px;height:56px;display:grid;overflow:hidden}.number-control input{min-width:0;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;-moz-appearance:textfield;background:0 0;border:0;outline:0;padding:0 8px;font-size:21px;font-weight:720}.number-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-step{cursor:pointer;color:var(--accent-deep);background:0 0;border:0;padding:0;font-size:25px}.number-step:active{background:var(--accent-soft)}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:10px;margin:-4px 0 0;padding:10px 12px;font-size:13px;font-weight:560;line-height:1.45}.dialog-actions{grid-template-columns:1fr 1.15fr;gap:10px;padding:0 23px 23px;display:grid}.dialog-primary,.full-button{width:100%}.full-button{grid-column:1/-1}.count-context{background:var(--paper);border-radius:13px;justify-content:space-between;align-items:center;gap:15px;padding:13px 15px;font-size:14px;display:flex}.count-context>span:first-child{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.count-context>span:last-child{color:var(--ink-muted);flex:none;font-size:12px}.count-context strong{color:var(--ink);font-size:14px}.single-number-input{font-variant-numeric:tabular-nums;height:62px;font-size:25px}.dialog-description{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.65}.backup-option{cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:16px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:72px;padding:12px;display:grid}.backup-option:active{background:var(--accent-soft)}.backup-option-icon{width:42px;height:42px;color:var(--accent-deep);background:var(--accent-soft);border-radius:13px;place-items:center;display:grid}.backup-option-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:22px;height:22px}.backup-option strong,.backup-option small{display:block}.backup-option strong{font-size:15px}.backup-option small{color:var(--ink-muted);margin-top:3px;font-size:12px;font-weight:500}.backup-option .chevron{fill:none;stroke:#9ba49f;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}.confirm-dialog{text-align:center;width:min(100% - 40px,360px);padding:27px 24px 24px}.confirm-symbol{width:50px;height:50px;color:var(--accent-deep);background:var(--accent-soft);border-radius:17px;place-items:center;margin:0 auto 17px;font-size:25px;font-weight:700;display:grid}.confirm-symbol.is-danger{color:var(--danger);background:var(--danger-soft)}.confirm-dialog h2{letter-spacing:-.035em;margin:0;font-size:22px}.confirm-dialog p{color:var(--ink-muted);margin:9px 0 22px;font-size:14px;line-height:1.65}.confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.toast{z-index:100;right:18px;bottom:calc(24px + var(--safe-bottom));pointer-events:none;color:#fff;opacity:0;background:#283a34;border-radius:13px;width:fit-content;max-width:min(100% - 36px,420px);margin:auto;padding:12px 16px;font-size:13px;font-weight:620;line-height:1.4;transition:opacity .16s,transform .16s;position:fixed;left:18px;transform:translateY(12px);box-shadow:0 14px 36px #141f1b33}.toast[data-tone=error]{background:var(--danger)}.toast.is-visible{opacity:1;transform:translateY(0)}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=680px){.app-header,.app-main{padding-left:28px;padding-right:28px}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card{grid-template-columns:minmax(0,1fr)}.stock-control{justify-self:start}}@media (width<=390px){.app-header,.app-main{padding-left:16px;padding-right:16px}.list-toolbar h2{font-size:25px}.primary-button{padding:0 14px}.product-card{gap:14px 12px;padding:15px}.stock-button{width:43px}.stock-quantity{min-width:48px;font-size:19px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
