@font-face{font-family:Archivo;src:url(/fonts/Archivo-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/Archivo-Bold.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--canvas: #e4ded6;--canvas-dark: #241f1d;--paper: #f8f6f3;--paper-card: #fffdfb;--paper-shade: #efeae4;--line: #ded7d0;--ink: #191817;--ink2: #55504b;--ink3: #9a938c;--pink: #e8427e;--pink-tint: #fbdde9;--pink-faint: #fdf1f6;--pink-glass: rgba(232, 66, 126, .19);--pink-glass-edge: rgba(232, 66, 126, .48);--icon-pink: rgba(232, 66, 126, .72);--icon-ink: rgba(25, 24, 23, .65);--icon-on-pink: rgba(255, 255, 255, .67);--ink-glass: rgba(25, 24, 23, .05);--ink-glass-edge: rgba(25, 24, 23, .35);--r-sm: 8px;--r-md: 14px;--r-full: 999px;--font-display: "Archivo", system-ui, sans-serif;--font-mono: "Space Mono", "Apple SD Gothic Neo", Pretendard, ui-monospace, monospace;--font-body: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", Pretendard, system-ui, sans-serif;--printer-top: max(48px, calc(env(safe-area-inset-top, 0px) + 1px) );--slot-line: calc(var(--printer-top) + 62px);--paper-top: calc(var(--printer-top) + 56px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea{font:inherit;color:inherit}.stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--canvas)}.stage.dark{background:var(--canvas-dark)}.roll{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent var(--slot-line),#000 var(--slot-line));mask-image:linear-gradient(to bottom,transparent var(--slot-line),#000 var(--slot-line))}.roll::-webkit-scrollbar{display:none}.roll.static{overflow-y:hidden}.roll-inner{width:300px;margin:0 auto;padding-top:var(--paper-top);padding-bottom:60px;display:flex;flex-direction:column;gap:18px}.roll.static .roll-inner{padding-bottom:0}.roll-scale{display:flex;flex-direction:column;gap:18px;zoom:var(--photo-zoom, 1)}.roll.print-in .roll-inner{animation:print-in 1.1s cubic-bezier(.22,.61,.36,1)}@keyframes print-in{0%{transform:translateY(calc(var(--paper-top, 60px) - 100dvh))}to{transform:translateY(0)}}.stage.photo{--frame-w: min(100vw, 430px);--slot-line: calc(var(--frame-w) * 440 / 1046);--paper-top: calc(var(--frame-w) * 434 / 1046);background-color:#e8ded3;background-image:url(/bg.png);background-repeat:no-repeat;background-position:top center;background-size:var(--frame-w) auto}.stage.photo .roll-inner{width:100%;align-items:center}.stage.photo .roll-scale{width:300px}.sign-search{position:absolute;z-index:3;left:50%;top:calc(var(--frame-w) * 144 / 1046);margin-left:calc(var(--frame-w) * 253 / 1046);width:calc(var(--frame-w) * 116 / 1046);height:calc(var(--frame-w) * 116 / 1046);background:url(/search-icon.png) center / contain no-repeat}.photo-feed-label{position:absolute;z-index:3;left:50%;transform:translate(-50%);top:calc(var(--frame-w) * 368 / 1046);height:calc(var(--frame-w) * 42 / 1046);width:calc(var(--frame-w) * 632 / 1046);display:flex;align-items:center;justify-content:space-between;pointer-events:none}.photo-feed-label .name{pointer-events:auto;display:flex;align-items:center;gap:3px;font-size:15px;font-weight:800;color:var(--ink)}.photo-feed-label .count{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:2px;color:var(--ink)}.feed-stage{touch-action:none}.feed-viewport{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent var(--slot-line),#000 var(--slot-line));mask-image:linear-gradient(to bottom,transparent var(--slot-line),#000 var(--slot-line))}.feed-strip{position:absolute;top:var(--slot-line);left:50%;width:300px;transform:translate(-50%,calc(-100% + var(--fed, 0px)));will-change:transform}.feed-scale{display:flex;flex-direction:column;gap:18px;width:300px}.feed-stage.photo .feed-strip{width:fit-content}.feed-stage.photo .feed-scale{transform:scale(var(--photo-zoom, 1));transform-origin:top center}.printer{position:absolute;top:var(--printer-top);left:50%;transform:translate(-50%);width:378px;height:92px}.printer.housing{z-index:0}.printer.lip{z-index:2;pointer-events:none}.housing-body{width:378px;height:92px;border-radius:18px;background:linear-gradient(to bottom,#3a3a3a,#141414 55%,#242424)}.printer-label{position:absolute;top:13px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;width:314px;height:21px}.printer-label .name{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:800;color:#ffffffeb}.printer-label .count{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:2px;color:var(--pink)}.housing-highlight{position:absolute;top:7px;left:50%;transform:translate(-50%);width:326px;height:2px;border-radius:1px;background:#5a5a5a;opacity:.5}.lip-slot{position:absolute;top:38px;left:50%;transform:translate(-50%);width:338px;height:24px;border-radius:12px;background:#0b0b0b}.lip-line{position:absolute;top:38px;left:50%;transform:translate(-50%);width:338px;height:2px;border-radius:1px;background:#4a4a4a;opacity:.7}.lip-shadow{position:absolute;top:60px;left:50%;transform:translate(-50%);width:326px;height:6px;border-radius:3px;background:#00000026}.paper{filter:drop-shadow(0 3px 3px rgba(25,24,23,.2))}.paper-body{background:var(--paper)}.torn{display:block;width:300px;margin-top:-1px}.perforation{display:flex;gap:9px;align-items:center}.perforation>i{flex:1;height:2.5px;background:var(--pink)}.dotted{display:flex;gap:4px;align-items:center}.dotted>i{flex:1;border-radius:var(--r-full)}.barcode{display:flex;gap:1.5px;justify-content:center;align-items:stretch}.barcode>i{background:var(--pink)}.rule{height:1.5px;background:var(--pink)}.brackets{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.brackets>i{position:absolute;background:var(--pink);border-radius:1.25px}.glass-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 0;border-radius:var(--r-full);background:var(--pink-glass);box-shadow:inset 0 0 0 1px var(--pink-glass-edge);color:var(--pink);font-weight:700}.glass-button:disabled{opacity:.45;cursor:default}.ink-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 0;border-radius:var(--r-full);background:var(--ink-glass);box-shadow:inset 0 0 0 1.5px var(--ink-glass-edge);color:var(--ink2);font-size:14px;font-weight:700}.chip{padding:8px 14px;border-radius:var(--r-full);font-size:12.5px;font-weight:500;color:var(--ink2);background:var(--paper-card);box-shadow:inset 0 0 0 1px var(--line)}.chip.selected{font-weight:700;color:var(--paper);background:var(--ink);box-shadow:none}.chips{display:flex;flex-wrap:wrap;gap:7px}.stars{display:flex;align-items:center}.receipt-header{display:flex;align-items:center;justify-content:space-between}.logo{font-family:var(--font-display);font-weight:700;font-size:36px;letter-spacing:-1.2px;color:var(--pink);line-height:1}.pad{padding:52px 26px 34px}.col-head{display:flex;justify-content:space-between;font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--pink)}.category-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:24px 0;text-align:left}.category-row .item{display:flex;align-items:center;gap:10px}.category-row .name{font-size:16px;font-weight:500;color:var(--ink)}.category-row .count{font-family:var(--font-mono);font-size:13px;color:var(--ink3)}.scan-block{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:100%;height:118px;padding:18px 0 8px}.scan-block .label{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:2.2px;color:var(--ink)}.feed-meta{display:flex;align-items:center;justify-content:space-between}.product-photo{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.product-photo img{max-width:100%;max-height:100%;object-fit:contain}.product-photo.empty{background:var(--paper-shade);color:var(--ink3)}.review-row{padding:15px 0;display:flex;flex-direction:column;gap:9px}.review-meta{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink2)}.review-body{font-size:13px;line-height:1.65;color:var(--ink);white-space:pre-wrap}.keyword{padding:5px 10px;border-radius:var(--r-full);font-size:11px;font-weight:500;color:var(--ink2);background:var(--paper-card);box-shadow:inset 0 0 0 1px var(--line)}.write-review{display:flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--r-full);background:var(--pink-glass);box-shadow:inset 0 0 0 1px var(--pink-glass-edge);color:var(--pink);font-size:11.5px;font-weight:700}.search-box{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--paper-card);box-shadow:inset 0 0 0 1px var(--line)}.search-box input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:14px}.search-box input::placeholder{color:var(--ink3)}.search-note{padding:26px 0;font-size:12.5px;line-height:1.7;color:var(--ink3)}.search-row{display:flex;align-items:center;gap:13px;width:100%;padding:14px 0;text-align:left}.search-row .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.search-row .name{font-size:13px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-row .rating{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--pink)}.camera-window{position:relative;width:100%;border-radius:6px;overflow:hidden;background:#221e1c}.camera-window video{width:100%;height:100%;object-fit:cover;display:block}.camera-window .fill{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--icon-on-pink)}.scan-line{position:absolute;left:24px;right:24px;height:2px;background:var(--pink);box-shadow:0 0 7px #e8427e80;animation:scan 2.8s ease-in-out infinite}@keyframes scan{0%,to{top:calc(50% - 70px)}50%{top:calc(50% + 70px)}}.processing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073}.spinner{width:26px;height:26px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shutter{display:flex;align-items:center;justify-content:center;width:66px;height:66px;border-radius:50%;box-shadow:inset 0 0 0 2.5px var(--pink-glass-edge);margin:0 auto}.shutter>i{width:50px;height:50px;border-radius:50%;background:var(--pink-glass);box-shadow:inset 0 0 0 1px var(--pink-glass-edge)}.field-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:1.6px;color:var(--pink)}.underline-input{width:100%;padding:10px 0;border:none;border-bottom:1.5px solid var(--ink);background:none;font-size:14px;outline:none}.underline-input::placeholder{color:var(--ink3)}.editor{height:126px;padding:13px;border-radius:var(--r-sm);background:var(--paper-card);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column}.editor textarea{flex:1;width:100%;border:none;background:none;resize:none;outline:none;font-size:13px;line-height:1.7;font-family:var(--font-body)}.editor textarea::placeholder{color:var(--ink3)}.editor .count{align-self:flex-end;font-family:var(--font-mono);font-size:10.5px;color:var(--ink3)}.install-sheet{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:10;padding:18px 20px;border-radius:var(--r-md);background:var(--paper-card);box-shadow:0 6px 24px #19181738;max-width:340px;margin:0 auto}.install-sheet h3{margin:0 0 6px;font-size:14px;font-weight:800;color:var(--ink)}.install-sheet p{margin:0 0 14px;font-size:12.5px;line-height:1.6;color:var(--ink2)}.install-sheet .row{display:flex;gap:10px;align-items:center}.mono{font-family:var(--font-mono)}.center{text-align:center}.muted{color:var(--ink3)}
