*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:#234734;font-family:Work Sans,system-ui,sans-serif}button{font-family:inherit;border:none;background:none}input{font-family:inherit}.app{position:relative;height:100vh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:#efe7d6;color:#2a271f;overflow:hidden}.topbar{flex:none;display:flex;align-items:center;padding:14px 18px;background:#234734;border-bottom:3px solid #c69022}.title{display:flex;flex-direction:column}.title h1{font-family:Zilla Slab,serif;font-weight:700;font-size:20px;color:#f4ecda}.title span{font-size:12px;color:#a9bcab;letter-spacing:.3px}.grid-wrap{flex:1;min-height:0;overflow-y:auto;padding:18px 16px 110px;-webkit-overflow-scrolling:touch}.grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.card{position:relative;cursor:pointer;text-align:left;background:#fffdf7;border:1.5px solid #ddd2ba;border-radius:14px;padding:15px 14px 13px;display:flex;flex-direction:column;gap:5px;min-height:122px;box-shadow:0 1px #0000000a;transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.card.weight{background:#fbf4e3;border-color:#e3c98a}.card:active{transform:scale(.97);border-color:#c69022;box-shadow:0 2px 8px #23473429}.card-name{font-family:Zilla Slab,serif;font-weight:600;font-size:17px;line-height:1.12;color:#28281f}.card-price{margin-top:auto;display:flex;align-items:baseline;gap:4px}.price-num{font-family:Zilla Slab,serif;font-weight:700;font-size:24px;color:#234734}.price-unit{font-size:12px;font-weight:600;color:#9a8f73}.badge{position:absolute;top:-8px;right:-8px;min-width:28px;height:28px;padding:0 7px;border-radius:14px;background:#c69022;border:2px solid #efe7d6;display:flex;align-items:center;justify-content:center;font-family:Zilla Slab,serif;font-weight:700;font-size:14px;color:#fff;animation:pop .18s ease}.badge[hidden]{display:none}.bar{position:absolute;left:0;right:0;bottom:0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));background:#234734;border-top:3px solid #c69022;box-shadow:0 -6px 20px #0000002e}.bar-left{display:flex;align-items:center;gap:9px}.bar-caret{font-size:18px;color:#e9c87a;transform:translateY(-1px)}.bar-text{display:flex;flex-direction:column;line-height:1.1;text-align:left}.bar-title{font-family:Zilla Slab,serif;font-weight:600;font-size:14px;color:#f4ecda;text-transform:uppercase;letter-spacing:1px}.bar-count{font-size:12px;color:#8ea391}.bar-total{font-family:Zilla Slab,serif;font-weight:700;font-size:32px;color:#e9c87a;line-height:.9}.overlay{position:absolute;inset:0;background:#141e1880;animation:fadeIn .2s ease;z-index:5}.overlay[hidden]{display:none}.sheet{position:absolute;left:0;right:0;bottom:0;height:82%;display:flex;flex-direction:column;background:#234734;border-radius:20px 20px 0 0;animation:slideUp .26s cubic-bezier(.22,1,.36,1);z-index:6;overflow:hidden}.sheet[hidden]{display:none}.sheet-handle{flex:none;display:flex;justify-content:center;padding-top:9px}.sheet-handle span{width:40px;height:4px;border-radius:2px;background:#ffffff40}.sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:12px 20px}.sheet-title{display:flex;align-items:baseline;gap:9px}.sheet-title h2{font-family:Zilla Slab,serif;font-weight:600;font-size:19px;color:#f4ecda}.sheet-title span{font-size:13px;color:#8ea391}.clear{cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px;border-radius:8px;border:1px solid rgba(244,236,218,.22);color:#c9b89a}.lines{flex:1;overflow-y:auto;padding:6px 16px 16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.empty{margin:auto;text-align:center;padding:48px 24px;color:#7e937f;font-size:13.5px;line-height:1.5}.empty-title{font-family:Zilla Slab,serif;font-size:18px;color:#a9bcab;margin-bottom:6px}.line{background:#ffffff0e;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:13px 14px}.line-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:11px}.line-name{font-family:Zilla Slab,serif;font-weight:600;font-size:16px;color:#f4ecda;line-height:1.2}.line-meta{font-size:11.5px;color:#8ea391;margin-top:2px}.line-total{font-family:Zilla Slab,serif;font-weight:700;font-size:18px;color:#e9c87a;white-space:nowrap}.qty-row{display:flex;align-items:center;gap:14px}.qty-btn{cursor:pointer;width:42px;height:42px;border-radius:10px;background:#ffffff1a;color:#f4ecda;font-size:26px;line-height:1;user-select:none}.qty-btn:active{background:#fff3}.qty-num{font-family:Zilla Slab,serif;font-weight:700;font-size:19px;color:#f4ecda;min-width:26px;text-align:center}.weight-row{display:flex;align-items:center;gap:10px}.weight-input{position:relative;flex:1}.weight-input input{width:100%;background:#00000038;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:11px 50px 11px 13px;color:#f4ecda;font-family:Zilla Slab,serif;font-weight:700;font-size:19px;outline:none}.weight-suffix{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:600;color:#8ea391}.weight-hg{font-size:12px;color:#8ea391;white-space:nowrap}.sheet-foot{flex:none;padding:16px 22px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.1);background:#1f4030;display:flex;align-items:center;justify-content:space-between}.foot-label{font-family:Zilla Slab,serif;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:1.5px;color:#a9bcab}.foot-total{font-family:Zilla Slab,serif;font-weight:700;font-size:40px;line-height:.9;color:#e9c87a}@keyframes pop{0%{transform:scale(.85)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
