:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}input,select,textarea{color:#222!important;-webkit-text-fill-color:#222!important;caret-color:#222!important;background-color:#fff!important}input::placeholder,textarea::placeholder{color:#888!important;-webkit-text-fill-color:#888!important;opacity:1!important}input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#222!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#222!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#222!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#222!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.login-container{box-sizing:border-box;background-color:#fff;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex}.login-card{flex-direction:column;align-items:center;width:100%;max-width:400px;display:flex}.login-form{flex-direction:column;gap:20px;width:100%;display:flex}.login-button{color:#fff;cursor:pointer;background-color:#e53935;border:none;border-radius:12px;width:100%;margin-top:10px;padding:14px;font-size:16px;font-weight:700;transition:background-color .2s,transform .1s}.login-button:active{background-color:#d32f2f;transform:scale(.98)}.register-section{text-align:center;flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:36px;display:flex}.register-text{color:#666;margin:0;font-size:13px}.register-button{color:#e53935;cursor:pointer;background:0 0;border:1.5px solid #e53935;border-radius:12px;width:100%;padding:12px 24px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s}.register-button:active{background-color:#ffebee}input[type=text],input[type=password],input[type=email]{color:#333!important;-webkit-text-fill-color:#333!important;background-color:#fff!important}input[type=text]::placeholder,input[type=password]::placeholder,input[type=email]::placeholder{opacity:1;color:#888!important}.register-container{box-sizing:border-box;background-color:#fff;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex}.register-card{flex-direction:column;align-items:center;width:100%;max-width:400px;display:flex}.logo-section{text-align:center;justify-content:center;width:100%;margin-bottom:20px;display:flex}.app-logo{object-fit:contain;max-width:140px;max-height:140px}.logo-placeholder{color:#888;background-color:#fafafa;border:2px dashed #e0e0e0;border-radius:20px;justify-content:center;align-items:center;width:120px;height:120px;font-size:14px;display:flex}.register-title{color:#333;margin-bottom:24px;font-size:18px;font-weight:700}.register-form{flex-direction:column;gap:16px;width:100%;display:flex}.form-group{text-align:left;flex-direction:column;gap:6px;display:flex}.form-group label{color:#333;font-size:13px;font-weight:600}.form-group input{box-sizing:border-box;background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:16px;transition:border-color .2s,background-color .2s}.form-group input:focus{background-color:#fff;border-color:#e53935}.submit-button{color:#fff;cursor:pointer;background-color:#e53935;border:none;border-radius:12px;width:100%;margin-top:12px;padding:14px;font-size:16px;font-weight:700;transition:background-color .2s,transform .1s}.submit-button:active{background-color:#d32f2f;transform:scale(.98)}.back-to-login-section{text-align:center;width:100%;margin-top:24px}.back-to-login-button{color:#666;cursor:pointer;background:0 0;border:none;padding:8px;font-size:14px;text-decoration:underline}.back-to-login-button:active{color:#e53935}.home-container{color:#333;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:#fff;flex-direction:column;width:100%;height:100dvh;display:flex;overflow:hidden}.home-header{z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.hamburger-button{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:space-around;width:32px;height:32px;padding:4px;display:flex}.hamburger-line{background-color:#fff;border-radius:2px;width:100%;height:2px}.header-logo-area{justify-content:center;align-items:center;display:flex}.header-logo{object-fit:contain;max-height:38px}.header-logo-placeholder{color:#fff;font-size:18px;font-weight:700}.drawer-overlay{z-index:200;opacity:0;visibility:hidden;background-color:#00000080;width:100vw;height:100vh;transition:opacity .3s,visibility .3s;position:fixed;top:0;left:0}.drawer-overlay.is-active{opacity:1;visibility:visible}.drawer-menu{z-index:210;background-color:#fff;flex-direction:column;width:280px;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:2px 0 10px #00000026}.drawer-menu.is-active{transform:translate(0)}.drawer-user-info{color:#fff;background-color:#e53935;align-items:center;gap:12px;padding:32px 20px 20px;display:flex}.user-avatar{background-color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.user-details{text-align:left;flex-direction:column;display:flex}.user-label{opacity:.85;font-size:11px}.user-id{font-size:16px;font-weight:700}.drawer-nav{flex-direction:column;flex:1;padding:12px 0;display:flex}.drawer-item{color:#333;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:16px;width:100%;padding:16px 24px;font-size:15px;font-weight:600;transition:background-color .2s;display:flex}.drawer-item:active{color:#e53935;background-color:#ffebee}.drawer-icon{text-align:center;width:24px;font-size:18px}.drawer-footer{border-top:1px solid #eee;padding:8px 0 24px}.logout-item{color:#d32f2f}.search-overlay{z-index:80;opacity:0;visibility:hidden;background-color:#00000080;width:100vw;height:100vh;transition:opacity .25s,visibility .25s;position:fixed;top:0;left:0}.search-overlay.is-active{opacity:1;visibility:visible}.search-bar-container{z-index:1;width:100%;margin-bottom:24px;transition:z-index .25s;position:relative}.search-bar-container.is-focused{z-index:90}.search-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.search-input{box-sizing:border-box;-webkit-appearance:none;background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:24px;outline:none;width:100%;padding:12px 40px 12px 16px;font-size:16px;transition:border-color .2s,background-color .2s,box-shadow .2s}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-input:focus{background-color:#fff;border-color:#e53935;box-shadow:0 4px 12px #00000026}.search-clear-button{color:#fff;cursor:pointer;background-color:#ccc;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:12px;font-weight:700;transition:background-color .2s;display:flex;position:absolute;right:12px}.search-clear-button:active{background-color:#e53935}.home-main{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px;overflow-y:auto}.section-container{flex-direction:column;gap:12px;display:flex}.section-container+.section-container{margin-top:20px}.frequent-scroll-container{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none;gap:12px;padding:4px 4px 12px;display:flex;overflow:auto hidden}.frequent-scroll-container::-webkit-scrollbar{display:none}.frequent-card{scroll-snap-align:start;box-sizing:border-box;background-color:#fff;border:1px solid #eee;border-radius:12px;flex-direction:column;flex:0 0 110px;align-items:center;gap:8px;min-width:110px;padding:12px 8px;display:flex;box-shadow:0 2px 6px #0000000a}.card-image-placeholder{color:#888;background-color:#f0f0f0;border-radius:8px;justify-content:center;align-items:center;width:60px;height:60px;font-size:12px;display:flex}.card-name{color:#333;white-space:nowrap;text-overflow:ellipsis;text-align:center;width:100%;font-size:13px;font-weight:600;overflow:hidden}.category-accordion-list{flex-direction:column;gap:10px;display:flex}.category-group{background-color:#fff;border:1px solid #eee;border-radius:12px;overflow:hidden}.category-main-button{cursor:pointer;text-align:left;background-color:#f9f9f9;border:none;justify-content:space-between;align-items:center;width:100%;padding:16px;display:flex}.category-main-button.is-open{background-color:#ffebee;border-bottom:1px solid #ffcdd2}.category-label{color:#333;font-size:15px;font-weight:600}.category-arrow{color:#888;font-size:12px}.sub-category-list{background-color:#fff;flex-direction:column;padding-left:12px;display:flex}.sub-category-group{border-bottom:1px solid #f0f0f0}.sub-category-group:last-child{border-bottom:none}.sub-category-button{color:#444;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.sub-category-button.is-open{color:#e53935}.sub-arrow{color:#888;font-size:10px}.item-category-list{background-color:#fafafa;border-top:1px dashed #eee;flex-direction:column;padding-left:16px;display:flex}.item-category-button{text-align:left;color:#666;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f0f0f0;width:100%;padding:10px 16px;font-size:13px}.item-category-button:last-child{border-bottom:none}.item-category-button:active{color:#e53935;background-color:#ffebee}.camera-fab{color:#fff;cursor:pointer;z-index:100;background-color:#e53935;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .1s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 10px #e5393566}.camera-fab:active{transform:scale(.92)}.camera-icon{width:28px;height:28px}.search-suggestions-list{z-index:100;background-color:#fff;border-radius:12px;width:100%;margin-top:8px;padding:0;list-style:none;position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 4px 16px #00000026}.search-suggestion-item{color:#333;cursor:pointer;border-bottom:1px solid #f0f0f0;align-items:center;gap:12px;padding:14px 16px;font-size:15px;transition:background-color .2s;display:flex}.search-suggestion-item:last-child{border-bottom:none}.search-suggestion-item:active{color:#e53935;background-color:#ffebee}.suggestion-icon{color:#888;font-size:14px}.suggestion-text{font-weight:600}.suggestion-body{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.suggestion-path{color:#999;font-size:11px;font-weight:400}.settings-container{box-sizing:border-box;background-color:#f5f5f5;flex-direction:column;width:100%;min-height:100vh;display:flex}.settings-header{z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.settings-main{box-sizing:border-box;flex-direction:column;flex:1;gap:20px;width:100%;max-width:500px;margin:0 auto;padding:16px;display:flex}.settings-section{flex-direction:column;gap:8px;display:flex}.section-header{color:#666;text-align:left;margin:0 0 0 8px;font-size:13px;font-weight:600}.danger-header{color:#d32f2f}.settings-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.settings-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.settings-row:last-child{border-bottom:none}.row-label{color:#333;font-size:15px;font-weight:600}.row-value{color:#666;font-size:15px}.select-input{color:#333;background-color:#fff;border:1px solid #ccc;border-radius:8px;outline:none;padding:8px 12px;font-size:14px}.select-input:focus{border-color:#e53935}.checkbox-input{accent-color:#e53935;cursor:pointer;width:22px;height:22px}.action-button{cursor:pointer;text-align:center;background:0 0;border:none;border-bottom:1px solid #f0f0f0;width:100%;padding:16px;font-size:15px;font-weight:600;transition:background-color .2s}.action-button:last-child{border-bottom:none}.warning-button{color:#e65100}.warning-button:active{background-color:#fff3e0}.danger-button{color:#d32f2f}.danger-button:active{background-color:#ffebee}.product-detail-container{box-sizing:border-box;background-color:#f5f5f5;flex-direction:column;width:100%;min-height:100vh;display:flex}.product-detail-header{z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.product-detail-main{box-sizing:border-box;flex-direction:column;flex:1;gap:20px;width:100%;max-width:500px;margin:0 auto;padding:16px;display:flex}.product-title-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:16px 20px;box-shadow:0 2px 6px #0000000a}.product-info-wrapper{justify-content:space-between;align-items:center;display:flex}.product-name{color:#333;margin:0;font-size:22px;font-weight:700}.product-image-container{width:64px;height:64px}.product-image{object-fit:cover;border-radius:8px;width:100%;height:100%}.product-image-placeholder{color:#888;background-color:#f0f0f0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;font-size:12px;display:flex}.detail-section{flex-direction:column;gap:10px;display:flex}.section-title{color:#333;text-align:left;margin:0;font-size:15px;font-weight:700}.recent-purchase-card{background-color:#fff;border:2px solid #e53935;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex;box-shadow:0 2px 8px #e539351a}.recent-card-header{border-bottom:1px dashed #e0e0e0;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:4px 10px;padding-bottom:8px;display:flex}.purchase-date{color:#333;font-size:15px;font-weight:700}.shop-name{color:#666;background-color:#f5f5f5;border-radius:4px;padding:2px 8px;font-size:14px}.recent-card-body{justify-content:space-between;align-items:flex-end;display:flex}.price-info{flex-direction:column;align-items:flex-start;display:flex}.current-price{color:#e53935;font-size:26px;font-weight:700;line-height:1}.current-price .unit{margin-left:2px;font-size:14px}.original-price{color:#888;margin-top:4px;font-size:12px;text-decoration:line-through}.discount-tag{color:#d32f2f;background-color:#ffebee;border:1px solid #ffcdd2;border-radius:12px;padding:4px 10px;font-size:13px;font-weight:700}.history-header-row{justify-content:space-between;align-items:center;display:flex}.history-list{flex-direction:column;gap:8px;display:flex}.history-date,.history-shop{color:#333;font-size:14px;font-weight:700}.view-all-button{color:#333;cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:20px;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:700;transition:background-color .2s}.view-all-button:active{background-color:#f0f0f0}.product-name-note{color:#888;margin-top:4px;font-size:12px}.detail-message{text-align:center;color:#888;padding:24px 0;font-size:14px}.recent-card-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.receipt-link-button{color:#e53935;cursor:pointer;white-space:nowrap;background-color:#fff;border:1px solid #e53935;border-radius:16px;padding:6px 14px;font-size:13px;font-weight:700;transition:background-color .15s}.receipt-link-button:active{background-color:#ffebee}.history-list-container{box-sizing:border-box;background-color:#f5f5f5;flex-direction:column;width:100%;min-height:100vh;display:flex}.history-list-header{z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.history-list-main{box-sizing:border-box;flex-direction:column;flex:1;gap:12px;width:100%;max-width:500px;margin:0 auto;padding:16px;display:flex}.history-list-header-row{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.history-count{color:#666;font-size:14px;font-weight:700}.sort-select{color:#333;background-color:#fff;border:1px solid #ccc;border-radius:8px;outline:none;padding:6px 10px;font-size:13px}.full-history-list{flex-direction:column;gap:8px;display:flex}.history-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.history-card-left{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.history-date,.history-shop{color:#333;font-size:14px;font-weight:700}.history-card-right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.history-price-group{align-items:baseline;gap:6px;display:flex}.history-price{color:#333;font-size:16px;font-weight:700}.history-original-price{color:#999;font-size:11px;text-decoration:line-through}.history-discount{color:#888;font-size:11px}.history-discount.has-discount{color:#d32f2f;font-weight:600}.history-message{text-align:center;color:#888;padding:24px 0;font-size:14px}.history-item-name{color:#555;font-size:12px}.history-title-row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.history-card.clickable{cursor:pointer;transition:background-color .15s,transform .1s}.history-card.clickable:active{background-color:#f5f5f5;transform:scale(.99)}.receipt-scanner-container{background-color:#f8f9fa;flex-direction:column;min-height:100vh;display:flex}.scanner-header{color:#fff;background-color:#e53935;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex}.back-button{color:#fff;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px}.scanner-title{margin:0;font-size:18px;font-weight:700}.header-spacer{width:32px}.scanner-main{box-sizing:border-box;flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto;padding:20px 16px;display:flex}.scanner-error{color:#c62828;text-align:center;background-color:#ffebee;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px}.preview-container{background-color:#fff;border:2px dashed #ccc;border-radius:12px;flex:1;justify-content:center;align-items:center;min-height:320px;margin-bottom:24px;display:flex;position:relative;overflow:hidden}.upload-placeholder{text-align:center;color:#888}.placeholder-icon{margin-bottom:12px;font-size:48px}.placeholder-text{margin:0;font-size:14px;line-height:1.5}.preview-wrapper{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:12px;display:flex;position:relative}.preview-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:360px;box-shadow:0 2px 8px #0000001a}.re-take-button{color:#333;cursor:pointer;background-color:#f0f0f0;border:1px solid #ccc;border-radius:20px;margin-top:12px;padding:6px 16px;font-size:13px}.action-button-group,.analyze-action-area{flex-direction:column;gap:12px;display:flex}.action-button{cursor:pointer;border:none;border-radius:24px;justify-content:center;align-items:center;height:48px;font-size:16px;font-weight:700;transition:opacity .2s;display:flex}.action-button:active{opacity:.8}.primary-btn,.analyze-btn{color:#fff;background-color:#e53935}.secondary-btn{color:#333;background-color:#fff;border:1px solid #ccc}.analyzing-overlay{color:#fff;z-index:999;background-color:#000000bf;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spinner{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analyzing-text{margin:0 0 8px;font-size:18px;font-weight:700}.analyzing-sub{color:#ccc;font-size:13px}.image-confirm-container{box-sizing:border-box;background-color:#121212;flex-direction:column;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.image-confirm-header{z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:center;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.image-confirm-main{box-sizing:border-box;flex:1;justify-content:center;align-items:center;padding:16px;display:flex;position:relative}.image-preview-wrapper{background-color:#1e1e1e;border-radius:12px;justify-content:center;align-items:center;width:100%;max-width:400px;height:70vh;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #00000080}.preview-image{object-fit:contain;width:100%;height:100%}.image-placeholder{color:#888;font-size:14px}.crop-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000b3;border:1px solid #ffffff4d;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;transition:background-color .2s;display:flex;position:absolute;top:12px;right:12px}.crop-button:active{background-color:#e53935;border-color:#e53935}.bottom-action-bar{box-sizing:border-box;z-index:20;background-color:#1a1a1a;border-top:1px solid #2c2c2e;justify-content:space-between;align-items:center;width:100%;height:70px;padding:0 24px;display:flex;position:relative}.confirm-cancel-button{color:#aaa;cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:15px;transition:color .2s}.confirm-cancel-button:active{color:#fff}.analyze-button{color:#fff;cursor:pointer;background-color:#e53935;border:none;border-radius:30px;align-items:center;gap:8px;padding:14px 24px;font-size:16px;font-weight:700;transition:transform .1s;display:flex;box-shadow:0 4px 12px #e5393566}.analyze-button:active{background-color:#d32f2f;transform:scale(.95)}.alert-modal-overlay{z-index:400;box-sizing:border-box;background-color:#0009;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;animation:.15s fadeIn;display:flex;position:fixed;top:0;left:0}.alert-modal-card{box-sizing:border-box;text-align:center;background-color:#fff;border-radius:16px;width:100%;max-width:300px;padding:20px;box-shadow:0 8px 24px #00000040}.alert-title{color:#333;margin:0 0 12px;font-size:16px;font-weight:700}.alert-message{color:#555;margin:0 0 20px;font-size:14px;line-height:1.5}.alert-button-group{gap:10px;display:flex}.alert-button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px 0;font-size:14px;font-weight:700}.cancel-button{color:#666;background-color:#f0f0f0}.cancel-button:active{background-color:#e0e0e0}.confirm-button{color:#fff;background-color:#e53935}.confirm-button:active{background-color:#d32f2f}.loading-container{box-sizing:border-box;background-color:#fff;flex-direction:column;justify-content:space-between;width:100%;height:100vh;padding:24px;display:flex}.loading-main{flex:1;justify-content:center;align-items:center;display:flex}.loading-spinner-wrapper{flex-direction:column;align-items:center;gap:20px;display:flex}.loading-spinner{border:5px solid #f3f3f3;border-top-color:#e53935;border-radius:50%;width:54px;height:54px;animation:1s linear infinite spin}.loading-text{color:#333;letter-spacing:.05em;margin:0;font-size:18px;font-weight:700}.loading-footer{flex-direction:column;gap:16px;width:100%;max-width:400px;margin:0 auto;display:flex}.loading-notice-box{box-sizing:border-box;background-color:#fff8f8;border:1px solid #ffcdd2;border-radius:12px;padding:16px}.notice-title{color:#d32f2f;margin:0 0 8px;font-size:14px;font-weight:700}.notice-text{color:#666;margin:4px 0;font-size:12px;line-height:1.4}.loading-cancel-button{color:#666;cursor:pointer;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:25px;width:100%;padding:14px;font-size:15px;font-weight:700;transition:background-color .2s}.loading-cancel-button:active{background-color:#e0e0e0}.crop-container{box-sizing:border-box;background-color:#000;flex-direction:column;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.crop-header{z-index:10;box-sizing:border-box;background-color:#1a1a1a;border-bottom:1px solid #333;justify-content:center;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.header-title{color:#fff;margin:0;font-size:18px;font-weight:700}.crop-notice-banner{text-align:center;z-index:9;background-color:#2a2a2c;border-bottom:1px solid #3a3a3c;padding:8px 16px;position:relative}.crop-notice-text{color:#e5e5ea;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0;font-size:12.5px;line-height:1.4;display:flex}.crop-notice-text strong{color:#fc0;font-weight:700}.notice-badge{color:#000;letter-spacing:.5px;white-space:nowrap;background-color:#ff9500;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700}.crop-main{box-sizing:border-box;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.crop-workspace{justify-content:center;align-items:center;width:100%;max-width:400px;height:65vh;display:flex;position:relative}.crop-image-wrapper{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.crop-target-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;max-height:100%}.crop-box{cursor:move;box-sizing:border-box;touch-action:none;border:2px solid #fff;position:absolute;box-shadow:0 0 0 9999px #000000a6}.crop-grid-line{pointer-events:none;background-color:#fff6;position:absolute}.crop-grid-line.horizontal-1{width:100%;height:1px;top:33.33%;left:0}.crop-grid-line.horizontal-2{width:100%;height:1px;top:66.66%;left:0}.crop-grid-line.vertical-1{width:1px;height:100%;top:0;left:33.33%}.crop-grid-line.vertical-2{width:1px;height:100%;top:0;left:66.66%}.crop-corner{box-sizing:border-box;z-index:5;width:24px;height:24px;position:absolute}.crop-corner:after{content:"";border-style:solid;border-color:#fff;width:14px;height:14px;position:absolute}.crop-corner.top-left{cursor:nwse-resize;top:-12px;left:-12px}.crop-corner.top-left:after{border-width:3px 0 0 3px;top:10px;left:10px}.crop-corner.top-right{cursor:nesw-resize;top:-12px;right:-12px}.crop-corner.top-right:after{border-width:3px 3px 0 0;top:10px;right:10px}.crop-corner.bottom-left{cursor:nesw-resize;bottom:-12px;left:-12px}.crop-corner.bottom-left:after{border-width:0 0 3px 3px;bottom:10px;left:10px}.crop-corner.bottom-right{cursor:nwse-resize;bottom:-12px;right:-12px}.crop-corner.bottom-right:after{border-width:0 3px 3px 0;bottom:10px;right:10px}.crop-edge{z-index:6;position:absolute}.crop-edge.top{cursor:ns-resize;height:20px;top:-10px;left:14px;right:14px}.crop-edge.bottom{cursor:ns-resize;height:20px;bottom:-10px;left:14px;right:14px}.crop-edge.left{cursor:ew-resize;width:20px;top:14px;bottom:14px;left:-10px}.crop-edge.right{cursor:ew-resize;width:20px;top:14px;bottom:14px;right:-10px}.crop-placeholder{color:#888;font-size:14px}.crop-bottom-bar{box-sizing:border-box;z-index:20;background-color:#1a1a1a;border-top:1px solid #2c2c2e;justify-content:space-between;align-items:center;width:100%;height:70px;padding:0 24px;display:flex;position:relative}.crop-cancel-button{color:#aaa;cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:15px;transition:color .2s}.crop-cancel-button:active{color:#fff}.crop-done-button{color:#fff!important;cursor:pointer!important;opacity:1!important;background-color:#ff3b30!important;border:none!important;border-radius:20px!important;padding:10px 28px!important;font-size:15px!important;font-weight:700!important;transition:background-color .2s,transform .1s!important;box-shadow:0 2px 8px #ff3b3080!important}.crop-done-button:hover,.crop-done-button:focus{color:#fff!important;background-color:#ff5247!important}.crop-done-button:active{background-color:#e02d23!important;transform:scale(.96)!important}.receipt-confirm-container{box-sizing:border-box;background-color:#f8f9fa;flex-direction:column;width:100%;height:100vh;display:flex}.receipt-confirm-header{color:#fff;z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.receipt-confirm-main{box-sizing:border-box;flex-direction:column;flex:1;gap:16px;padding:16px;display:flex;overflow-y:auto}.info-input{color:#333;border:1px solid #ccc;border-radius:6px;padding:6px 10px;font-size:14px;font-weight:700}.date-field{position:relative}.date-display{box-sizing:border-box;text-align:left;width:100%;display:block}.date-native{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.notice-banner{color:#e65100;background-color:#fff3e0;border:1px solid #ffe0b2;border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.4}.receipt-confirm-main .receipt-table{border-collapse:separate;border-spacing:0}.receipt-confirm-main .receipt-table th{z-index:2;color:#fff;background-color:#616161;border-bottom-color:#616161;position:sticky;top:0}.receipt-confirm-main .receipt-table td{border-bottom:1px solid #616161}.table-input{box-sizing:border-box;border:1px solid #e53935;border-radius:4px;width:100%;padding:4px 6px;font-size:12px}.table-input.num{width:60px}.selection-bar{justify-content:center;align-items:center;gap:20px;margin:12px 0;padding:0 4px;display:flex}.selection-label{color:#000;font-weight:700}.selection-count{color:#e53935;font-weight:700}.edit-cell-button{color:#e53935;cursor:pointer;background-color:#fff;border:1.5px solid #e53935;border-radius:25px;padding:8px 20px;font-size:13px;font-weight:700;transition:background-color .2s}.edit-cell-button:active:not(:disabled){background-color:#ffebee}.edit-cell-button:disabled{color:#bdbdbd;cursor:not-allowed;background-color:#fff;border-color:#ccc}.save-cell-button{color:#fff;cursor:pointer;background-color:#4caf50;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.receipt-confirm-footer{background-color:#fff;border-top:1px solid #e0e0e0;padding:16px}.submit-receipt-button{color:#fff;cursor:pointer;background-color:#e53935;border:none;border-radius:25px;width:100%;padding:14px;font-size:16px;font-weight:700;transition:background-color .2s;box-shadow:0 4px 12px #e539354d}.submit-receipt-button:active{background-color:#d32f2f}.leave-modal-overlay{z-index:400;box-sizing:border-box;background-color:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.leave-modal-card{box-sizing:border-box;text-align:center;background-color:#fff;border-radius:16px;width:100%;max-width:300px;padding:20px;box-shadow:0 8px 24px #00000040}.leave-modal-title{color:#333;margin:0 0 12px;font-size:16px;font-weight:700}.leave-modal-message{color:#555;margin:0 0 20px;font-size:14px;line-height:1.5}.leave-modal-button-group{gap:10px;display:flex}.leave-modal-button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px 0;font-size:14px;font-weight:700}.leave-modal-cancel{color:#666;background-color:#f0f0f0}.leave-modal-cancel:active{background-color:#e0e0e0}.leave-modal-confirm{color:#fff;background-color:#e53935}.leave-modal-confirm:active{background-color:#d32f2f}.receipt-edit-overlay{z-index:9999;box-sizing:border-box;background-color:#f8fafc;flex-direction:column;width:100%;height:100dvh;display:flex;position:fixed;inset:0}.receipt-edit-container{background-color:#f8fafc;flex-direction:column;width:100%;height:100%;display:flex}.receipt-edit-header{color:#fff;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;min-height:60px;padding:0 16px;display:flex}.receipt-edit-title{color:#fff;margin:0;font-size:18px;font-weight:700}.receipt-edit-back{color:#fff;cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:32px;font-weight:300;line-height:1}.receipt-edit-header-spacer{width:32px}.receipt-edit-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.edit-item-card{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex;box-shadow:0 1px 2px #00000008}.edit-form-group{flex-direction:column;gap:4px;display:flex}.edit-form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.edit-label{color:#64748b;font-size:.75rem;font-weight:700}.edit-input,.edit-select{box-sizing:border-box;-webkit-appearance:none;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;height:42px;padding:0 12px;font-size:16px}.edit-input:focus,.edit-select:focus{border-color:#2563eb}.edit-category-button{color:#1d4ed8;cursor:pointer;box-sizing:border-box;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;justify-content:space-between;align-items:center;width:100%;height:44px;padding:0 12px;font-size:.9rem;font-weight:600;display:flex}.receipt-edit-footer{padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));background-color:#fff;border-top:1px solid #e2e8f0;gap:10px;display:flex}.edit-cancel-button{color:#475569;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;height:46px;font-size:.9rem;font-weight:700}.edit-save-button{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:10px;flex:2;height:46px;font-size:.9rem;font-weight:700}.receipt-edit-overlay{z-index:9999;background-color:#f8fafc;flex-direction:column;width:100%;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.receipt-image-open{cursor:zoom-in;font:inherit;padding:0}.image-viewer-overlay{z-index:2000;box-sizing:border-box;background-color:#000c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.image-viewer-frame{width:100%;max-width:360px}.image-viewer-scroll{background-color:#fff;border-radius:8px;width:100%;max-height:70vh;overflow-y:auto}.image-viewer-image{width:100%;height:auto;display:block}.receipt-success-container{box-sizing:border-box;background-color:#f8f9fa;justify-content:center;align-items:center;width:100%;height:100vh;padding:24px;display:flex}.success-card{box-sizing:border-box;text-align:center;background-color:#fff;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:360px;padding:32px 24px;display:flex;box-shadow:0 4px 16px #00000014}.success-icon-wrapper{background-color:#ffebee;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.success-icon{color:#e53935;font-size:36px;font-weight:700}.success-title{color:#333;margin:0 0 12px;font-size:20px;font-weight:700}.success-message{color:#666;margin:0 0 28px;font-size:14px;line-height:1.5}.go-home-button{color:#fff;cursor:pointer;background-color:#e53935;border:none;border-radius:25px;width:100%;padding:14px 0;font-size:16px;font-weight:700;transition:background-color .2s,transform .1s;box-shadow:0 4px 12px #e539354d}.go-home-button:active{background-color:#d32f2f;transform:scale(.98)}.receipt-history-container{box-sizing:border-box;background-color:#f8f9fa;flex-direction:column;width:100%;height:100vh;display:flex}.receipt-history-header{color:#fff;z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.receipt-history-main{box-sizing:border-box;flex:1;padding:16px;overflow-y:auto}.no-receipts-message{text-align:center;color:#888;margin-top:40px;font-size:14px}.receipt-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.receipt-card{cursor:pointer;background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;flex-direction:column;align-items:center;padding:12px;transition:transform .1s,box-shadow .2s;display:flex;position:relative;box-shadow:0 2px 8px #0000000d}.receipt-card:active{transform:scale(.98)}.receipt-card-image-box{background-color:#f0f0f0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:140px;margin-bottom:8px;display:flex;overflow:hidden}.receipt-card-image{object-fit:cover;width:100%;height:100%}.receipt-placeholder-icon{font-size:40px}.receipt-card-info{flex-direction:column;gap:2px;width:100%;display:flex}.receipt-card-date{color:#888;font-size:11px}.receipt-card-store{color:#333;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.receipt-detail-container{box-sizing:border-box;background-color:#f8f9fa;flex-direction:column;width:100%;height:100vh;display:flex}.receipt-detail-header{color:#fff;z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.back-button{color:#fff;cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:32px;font-weight:300;line-height:1}.header-title{margin:0;font-size:18px;font-weight:700}.header-right-spacer{width:32px}.receipt-detail-main{box-sizing:border-box;flex-direction:column;flex:1;gap:20px;padding:16px;display:flex;overflow-y:auto}.receipt-info-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;justify-content:space-between;align-items:center;padding:16px;display:flex;box-shadow:0 2px 8px #0000000d}.info-text-group{flex-direction:column;flex:1;gap:10px;margin-right:16px;display:flex}.info-row{flex-direction:column;gap:2px;display:flex}.info-label{color:#757575;font-size:11px;font-weight:700}.info-value{color:#333;font-size:15px;font-weight:700}.receipt-image-preview{background-color:#f0f0f0;border:1px solid #ddd;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:90px;display:flex;overflow:hidden}.thumbnail-image{object-fit:cover;width:100%;height:100%}.no-image-text{color:#999;font-size:10px}.table-wrapper{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow-x:auto;box-shadow:0 2px 8px #0000000d}.receipt-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.receipt-table th{color:#555;white-space:nowrap;background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;padding:10px 8px;font-weight:700}.receipt-table td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:12px 8px}.receipt-detail-main .receipt-table{border-collapse:separate;border-spacing:0}.receipt-detail-main .receipt-table th{z-index:2;color:#fff;background-color:#616161;border-bottom-color:#616161;position:sticky;top:0}.receipt-detail-main .receipt-table td{border-bottom:1px solid #616161}.item-name-cell{color:#333;font-weight:700}.price-cell{color:#e53935;font-weight:700}.category-cell{color:#666}.product-label{color:#333;font-size:11px;font-weight:700}.discount-cell{white-space:nowrap}.discount-yes{color:#388e3c;font-weight:700}.discount-none{color:#757575}.delete-action-area{text-align:center;margin-top:10px;margin-bottom:20px}.subtle-delete-button{color:#888;cursor:pointer;padding:8px 16px;font-size:13px;text-decoration:underline;transition:color .2s;background:0 0!important;border:none!important}.subtle-delete-button:active{color:#e53935}.custom-modal-overlay{z-index:1000;box-sizing:border-box;background-color:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.custom-modal-card{box-sizing:border-box;text-align:center;background-color:#fff;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:320px;padding:24px 20px;animation:.2s ease-out forwards modalPopIn;display:flex;box-shadow:0 8px 24px #00000026}@keyframes modalPopIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.custom-modal-title{color:#333;margin:0 0 12px;font-size:18px;font-weight:700}.custom-modal-message{color:#666;margin:0 0 24px;font-size:14px;line-height:1.5}.custom-modal-button-group{justify-content:center;gap:12px;width:100%;display:flex}.custom-modal-button{cursor:pointer;border:none;border-radius:20px;flex:1;padding:12px 0;font-size:14px;font-weight:700;transition:background-color .2s}.custom-modal-button.cancel-button{color:#666;background-color:#f0f0f0}.custom-modal-button.cancel-button:active{background-color:#e0e0e0}.custom-modal-button.delete-button{color:#fff;background-color:#e53935}.custom-modal-button.delete-button:active{background-color:#d32f2f}.custom-modal-button.ok-button{color:#fff!important;white-space:nowrap!important;background:#007aff!important;border:none!important;border-radius:21px!important;flex:none!important;justify-content:center!important;align-items:center!important;width:auto!important;min-width:140px!important;height:42px!important;padding:0 24px!important;font-size:15px!important;font-weight:700!important;display:inline-flex!important;box-shadow:0 2px 6px #007aff4d!important}.custom-modal-button.ok-button:active{background:#0062cc!important}.custom-modal-card .success-icon-check{margin-bottom:8px;line-height:1;color:#4caf50!important;font-size:28px!important}.store-list-container{box-sizing:border-box;background-color:#f8f9fa;flex-direction:column;width:100%;height:100vh;display:flex}.store-list-header{color:#fff;z-index:10;box-sizing:border-box;background-color:#e53935;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.store-list-header .back-button{color:#fff;cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:32px;font-weight:300;line-height:1}.store-list-header .header-title{margin:0;font-size:18px;font-weight:700}.store-list-header .header-right-spacer{width:32px}.store-list-main{box-sizing:border-box;flex:1;padding:16px;overflow-y:auto}.no-stores-message{text-align:center;color:#888;margin-top:40px;font-size:14px}.store-chain-list{flex-direction:column;gap:12px;display:flex}.store-chain-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.store-chain-header{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:14px 12px;font-family:inherit;transition:background-color .1s;display:flex}.store-chain-header:active{background-color:#f5f5f5}.store-chain-icon{flex-shrink:0;font-size:24px}.store-chain-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.store-chain-name{color:#333;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.store-chain-meta{color:#888;font-size:11px}.store-chain-arrow{color:#888;font-size:24px;line-height:1;transition:transform .2s}.store-chain-arrow.is-open{transform:rotate(90deg)}.store-receipt-list{border-top:1px solid #e0e0e0;margin:0;padding:0;list-style:none}.store-receipt-list li+li{border-top:1px solid #f0f0f0}.store-receipt-row{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:12px;font-family:inherit;display:flex}.store-receipt-row:active{background-color:#f5f5f5}.store-receipt-date{color:#888;flex-shrink:0;font-size:11px}.store-receipt-store{color:#333;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.store-receipt-count{color:#888;flex-shrink:0;font-size:11px}
