:root{--accent: #2068b0;--accent-dark: #17527a;--danger: #b3392b;--green: #1f7a3d;--green-dark: #16602f;--ink: #2b2420;--muted: #776d66;--bg: #faf7f4;--card: #ffffff;--line: #e8e0da;--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}.app,.screen{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:calc(14px + var(--safe-top)) max(16px,var(--safe-right)) 14px max(16px,var(--safe-left));background:var(--card);border-bottom:1px solid var(--line)}.topbar-title{margin:0;font-size:18px}.brand-logo{display:block;height:22px;width:auto}.brand-logo.big{height:34px;margin:0 auto 14px}.content{flex:1;overflow-y:auto;padding:16px}.actionbar{display:flex;flex-direction:column;gap:10px;padding:12px max(16px,var(--safe-right)) calc(12px + var(--safe-bottom)) max(16px,var(--safe-left));background:var(--card);border-top:1px solid var(--line)}.center-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(32px + var(--safe-top)) 32px calc(32px + var(--safe-bottom));gap:8px}.btn,.stepper-btn,.line-add-btn,.icon-btn,.cat-chip,.quick-add-chip,.cart-line-main{touch-action:manipulation}.btn{border:none;border-radius:var(--radius);font-size:17px;font-weight:600;padding:14px 18px;cursor:pointer;min-height:52px}.btn:disabled{opacity:.5}.btn-big{font-size:19px;min-height:60px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-dark)}.btn-accent{background:var(--green);color:#fff}.btn-accent:active{background:var(--green-dark)}.btn-secondary{background:#fff;color:var(--ink);border:2px solid var(--line)}.btn-plain{background:none;color:var(--muted)}.btn-remove-line{background:none;color:var(--danger);font-size:15px;min-height:44px;padding:8px}.btn-light{background:#ffffffeb;color:var(--ink)}.btn-ghost{background:none;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);text-decoration:underline;font-size:15px;min-height:44px;padding:8px}.actionbar-row{display:flex;gap:10px}.actionbar-row .btn{flex:1;padding-left:8px;padding-right:8px;white-space:nowrap}.icon-btn{border:none;background:none;font-size:20px;padding:10px;min-width:44px;min-height:44px;cursor:pointer;color:var(--ink);border-radius:50%}.icon-btn.remove{color:var(--muted)}.icon-btn.light{background:#00000073;color:#fff}.icon-btn.light.active{background:#fff;color:var(--ink)}.cart-work{display:contents}.desktop-add-items,.desktop-cart-title{display:none}.empty-state{text-align:center;padding:56px 16px}.empty-icon{font-size:44px;margin-bottom:8px;color:var(--accent)}.cart-list,.review-list,.confirm-list,.help-list{list-style:none;margin:0;padding:0}.thumb{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.thumb img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px}.cart-line{display:flex;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding-right:4px}.cart-line>.thumb{margin-left:10px}.cart-line-main{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:none;font:inherit;padding:14px;cursor:pointer;min-height:56px}.cart-line-desc{font-weight:600}.cart-line-qty{font-weight:700;font-size:18px;white-space:nowrap}.tag{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;text-transform:uppercase;background:#f3e3c2;color:#7a5b14;border-radius:6px;padding:2px 6px;vertical-align:middle}.tag-info{background:#dcebf7;color:#1c5e8f;margin-left:0}.tag-done{background:#dcefdd;color:#1f6b32}.history-head .tag{margin-left:8px}.quick-add{margin-top:18px}.quick-add-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.see-all-link{border:none;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;padding:2px 4px;white-space:nowrap}.freq-stats{font-size:12.5px;color:#a3552b}.quick-add-title{margin:0 0 8px;padding:0 2px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.quick-add-row{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;-webkit-overflow-scrolling:touch}.quick-add-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:148px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);font:inherit;text-align:left;padding:10px;cursor:pointer}.quick-add-desc{font-size:13px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clear-cart{display:block;margin:4px auto 0;color:var(--muted)}.link-request-form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px;margin-top:12px}.link-sent{max-width:360px;background:#dcefdd;border:1px solid #a9d4ae;border-radius:var(--radius);color:#1f6b32;padding:12px 14px}.submit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#faf7f3f0;text-align:center;padding:24px}.submit-overlay-text{margin:0;font-size:18px;font-weight:700}.submit-error{background:#fdeceb;border:1px solid #e5a9a4;border-radius:var(--radius);color:#8c2b23;padding:12px 14px;text-align:left}.submit-error p{margin:6px 0 0}.submit-error-hint{font-size:13px;opacity:.85}.searchbar{padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}.searchbar .text-input{font-size:16px}.line-sku{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.02em;color:var(--ink);background:#f0e9e1;border-radius:5px;padding:0 5px}.cat-chips{display:flex;gap:8px;overflow-x:auto;padding:10px 16px;background-color:var(--card);background-image:linear-gradient(to left,var(--card),var(--card)),linear-gradient(to left,#2b242029,#2b242000);background-position:right center,right center;background-size:32px 100%,18px 100%;background-repeat:no-repeat;background-attachment:local,scroll;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}.cat-chip{flex:0 0 auto;border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:11px 14px;font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}.cat-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.cat-chip.freq{font-weight:700;color:var(--accent)}.cat-chip.freq.active{color:#fff}.line-add-btn{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:50%;background:var(--card);color:var(--accent);font-size:24px;font-weight:700;line-height:1;padding:0;cursor:pointer}.line-add-btn:active{background:#eaf1f8;border-color:var(--accent)}.line-add-btn.minus{color:var(--muted)}.quick-add.browse-suggest{margin-top:4px;margin-bottom:10px}.review-extras-link{border:none;background:none;font:inherit;font-size:15px;font-weight:600;color:var(--ink);min-height:44px;padding:4px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browse-group{list-style:none}.browse-group>.cart-list{margin:0;padding:0}.browse-cat-header{position:sticky;top:6px;z-index:1;margin-bottom:8px;padding:8px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #2b242014;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}.history-link{margin-left:auto;border:1px solid var(--line);background:var(--card);border-radius:10px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:10px 12px;cursor:pointer;min-height:44px}.history-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.history-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;font:inherit;text-align:left;padding:16px 14px;cursor:pointer;min-height:56px}.history-number{font-weight:700;color:var(--accent)}.history-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:12px}.history-lines{margin:0;width:100%;max-width:none;border:none;padding:0 2px}.history-lines li{display:flex;align-items:center;gap:8px}.review-line{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:12px 14px}.review-line-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.review-line-top .cart-line-desc{flex:1}.stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0}.stepper-btn{width:64px;height:64px;border-radius:50%;border:2px solid var(--line);background:var(--card);font-size:30px;font-weight:700;color:var(--ink);cursor:pointer}.stepper-btn:active{background:var(--line)}.stepper-btn:disabled{opacity:.35}.stepper-input{width:90px;height:64px;text-align:center;font-size:28px;font-weight:700;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper-input::-webkit-outer-spin-button,.stepper-input::-webkit-inner-spin-button{-webkit-appearance:none}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140c0873;display:flex;align-items:flex-end;z-index:50}.sheet{background:var(--card);width:100%;border-radius:20px 20px 0 0;padding:10px max(20px,var(--safe-right)) calc(20px + var(--safe-bottom)) max(20px,var(--safe-left));display:flex;flex-direction:column;gap:10px;animation:sheet-up .18s ease-out}@keyframes sheet-up{0%{transform:translateY(40%)}to{transform:translateY(0)}}.sheet-handle{width:42px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 6px}.sheet-photo{display:flex;justify-content:center;margin:4px 0 10px}.sheet-title{margin:0;font-size:20px;line-height:1.3}.sheet .muted{margin:0}.field-label{font-weight:600;font-size:14px;color:var(--muted);margin-top:8px}.text-input{width:100%;border:2px solid var(--line);border-radius:var(--radius);font:inherit;font-size:17px;padding:12px;background:var(--card);color:var(--ink);resize:none}.text-input:focus{outline:none;border-color:var(--accent)}.scan-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:40}.scan-video{width:100%;height:100%;object-fit:cover}.scan-flash{position:absolute;top:0;right:0;bottom:0;left:0;border:6px solid #2ecc71;background:#2ecc711f;pointer-events:none;z-index:5}.scan-topbar-right{display:flex;gap:10px}.scan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between}.scan-topbar{display:flex;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px}.scan-frame{position:relative;width:min(78vw,360px);height:160px;margin:0 auto}.corner{position:absolute;width:28px;height:28px;border:4px solid #fff;border-radius:4px}.corner.tl{top:0;left:0;border-right:none;border-bottom:none}.corner.tr{top:0;right:0;border-left:none;border-bottom:none}.corner.bl{bottom:0;left:0;border-right:none;border-top:none}.corner.br{bottom:0;right:0;border-left:none;border-top:none}.scan-bottombar{display:flex;flex-direction:column;gap:10px;padding:16px 16px calc(20px + var(--safe-bottom))}.scan-hint{color:#fff;text-align:center;margin:0;text-shadow:0 1px 4px rgba(0,0,0,.7)}.scan-help{padding:32px 24px;gap:12px}.help-list li{margin-bottom:12px;line-height:1.5}.confirm{text-align:center;display:flex;flex-direction:column;align-items:center;padding-top:calc(16px + var(--safe-top))}.confirm h2{margin:8px 0 4px}.confirm-check{width:72px;height:72px;border-radius:50%;background:var(--green);color:#fff;font-size:40px;display:flex;align-items:center;justify-content:center;margin-top:24px}.order-number{font-size:26px;font-weight:800;letter-spacing:.04em;color:var(--accent);margin:4px 0}.confirm-list{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:16px 0;width:100%;max-width:420px}.confirm-list li{padding:6px 0;border-bottom:1px solid var(--line)}.confirm-list li:last-child{border-bottom:none}.confirm-qty{font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.muted{color:var(--muted)}.small{font-size:13px}.pricing-note{text-align:center;font-size:12px;color:var(--muted)}.toast{position:fixed;left:16px;right:16px;top:calc(64px + env(safe-area-inset-top,0px));background:var(--ink);color:#fff;padding:14px 16px;border-radius:var(--radius);text-align:center;z-index:100;box-shadow:0 4px 16px #00000040;cursor:pointer}.spinner{width:36px;height:36px;border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.browse-body{flex:1;min-height:0;display:flex;flex-direction:column}.order-panel{display:none}.btn:focus-visible,.icon-btn:focus-visible,.cat-chip:focus-visible,.quick-add-chip:focus-visible,.line-add-btn:focus-visible,.cart-line-main:focus-visible,.history-link:focus-visible,.history-head:focus-visible,.review-extras-link:focus-visible,.stepper-btn:focus-visible,.text-input:focus-visible,.stepper-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover: hover) and (pointer: fine){.btn,.icon-btn,.cat-chip,.quick-add-chip,.line-add-btn,.cart-line-main,.history-link,.review-extras-link,.stepper-btn{transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn-primary:hover{background:var(--accent-dark)}.btn-accent:hover{background:var(--green-dark)}.btn-secondary:hover,.history-link:hover,.stepper-btn:hover{background:#f6f1ec}.cat-chip:not(.active):hover{background:#f6f1ec;border-color:#d8cdc4}.quick-add-chip:hover{background:#fdfaf7;border-color:#d8cdc4}.line-add-btn:hover{background:#eaf1f8;border-color:var(--accent)}.line-add-btn.minus:hover{background:#f6f1ec;border-color:#cfc4bb}.cart-line-main:hover{background:#f8f4ef}.icon-btn:not(.light):hover{background:#2b242012}.review-extras-link:hover{color:var(--accent)}.btn-remove-line:hover{background:#f7ece9}}@media (min-width: 720px){.screen{--shell: 760px}.topbar,.searchbar,.cat-chips,.content,.actionbar{padding-left:max(16px,calc((100% - var(--shell)) / 2));padding-right:max(16px,calc((100% - var(--shell)) / 2))}.content{padding-top:20px;padding-bottom:28px}.quick-add-row{flex-wrap:wrap;overflow-x:visible}.toast{left:50%;right:auto;transform:translate(-50%);min-width:320px;max-width:480px}.sheet-backdrop{align-items:center;justify-content:center;padding:24px}.sheet{max-width:460px;border-radius:20px;animation:sheet-pop .16s ease-out}.sheet-handle{display:none}}@keyframes sheet-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (min-width: 900px){.cart-screen,.review-screen{--shell: 1020px}.desktop-add-items{display:flex;flex-direction:column;gap:14px;margin-bottom:6px;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #2b24200d}.desktop-add-items h2{margin:0 0 4px;font-size:20px}.desktop-add-items p{margin:0;color:var(--muted);line-height:1.45}.desktop-add-items-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}.desktop-add-items-actions .btn{min-height:46px;padding:10px 14px;font-size:15px;border-radius:10px}.desktop-cart-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0 0;font-size:16px}.desktop-cart-title span{color:var(--muted);font-size:13px;font-weight:600}.cart-screen .content>.empty-state{display:none}.cart-screen>.actionbar{flex-direction:row;align-items:center;justify-content:flex-end;gap:10px;padding-top:10px;padding-bottom:10px}.cart-screen>.actionbar:not(:has(.btn-accent)){display:none}.cart-screen>.actionbar .actionbar-row,.cart-screen>.actionbar>.btn-secondary,.cart-screen>.actionbar .pricing-note{display:none}.cart-screen>.actionbar .btn-accent{min-height:42px;padding:8px 14px;font-size:15px;border-radius:10px;margin-left:auto}.cart-screen .content:has(.quick-add){display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"main aside";align-content:start;align-items:start;column-gap:28px}.cart-screen .cart-work{grid-area:main;display:flex;flex-direction:column;min-width:0;gap:12px}.cart-screen .quick-add{grid-area:aside;margin-top:0;position:sticky;top:0;align-self:start;max-height:calc(100dvh - 250px);overflow-y:auto;padding-right:2px}.cart-screen .quick-add-row{flex-direction:column;align-items:stretch}.cart-screen .quick-add-chip{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr);grid-auto-rows:min-content;column-gap:10px;align-items:start}.cart-screen .quick-add-chip>.thumb{grid-row:1 / span 3}.review-screen .content{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;column-gap:28px}.review-extras{position:sticky;top:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px 16px}.review-extras-link{display:none}}@media (min-width: 1100px){.browse-screen{--shell: 100%;display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"topbar topbar" "chips searchbar" "chips body"}.browse-screen>.topbar{grid-area:topbar}.browse-screen>.searchbar{grid-area:searchbar;padding:12px 24px}.browse-screen .searchbar .text-input{max-width:640px}.browse-screen>.cat-chips{grid-area:chips;flex-direction:column;align-items:stretch;gap:2px;overflow-y:auto;overflow-x:hidden;padding:14px 12px 20px;background:var(--card);border-bottom:none;border-right:1px solid var(--line)}.browse-screen .cat-chip{border:none;background:none;border-radius:10px;padding:9px 12px;text-align:left;white-space:normal;line-height:1.3}.browse-screen .cat-chip.active{background:var(--accent);color:#fff}.browse-screen .cat-chip.freq{margin-bottom:8px;padding-bottom:12px;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}.browse-screen .cat-chip.freq.active{border-radius:10px;border-bottom-color:transparent}.browse-body{grid-area:body;flex-direction:row;min-height:0}.browse-body>.content{padding-left:max(24px,calc((100% - 860px)/2));padding-right:max(24px,calc((100% - 860px)/2))}.browse-screen>.actionbar{display:none}.order-panel{display:flex;flex-direction:column;flex:0 0 340px;min-width:0;min-height:0;border-left:1px solid var(--line)}.order-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:15px 16px;background:var(--card);border-bottom:1px solid var(--line)}.order-panel-head h3{margin:0;font-size:16px}.order-panel-empty{margin:0;padding:32px 20px;text-align:center}.order-panel-list{list-style:none;margin:0;padding:12px 12px 4px;flex:1;overflow-y:auto}.order-panel-line{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px}.order-panel .stepper{gap:10px;margin:10px 0 2px}.order-panel .stepper-btn{width:44px;height:44px;font-size:22px}.order-panel .stepper-input{width:72px;height:44px;font-size:20px}.order-panel-footer{display:flex;flex-direction:column;padding:12px 16px;background:var(--card);border-top:1px solid var(--line)}}@media (max-height: 700px){.actionbar{gap:6px;padding-top:8px;padding-bottom:calc(8px + var(--safe-bottom))}.btn-big{min-height:52px}.cart-screen .pricing-note{display:none}}@media (prefers-reduced-motion: reduce){.sheet{animation:none}.btn,.icon-btn,.cat-chip,.quick-add-chip,.line-add-btn,.cart-line-main,.history-link,.review-extras-link,.stepper-btn{transition:none}*{scroll-behavior:auto!important}}
