:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#17212b;background:#f2f6f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{max-width:100%;overflow-x:hidden}body{margin:0;min-width:320px}.app-shell{width:100%;min-height:100vh;padding:24px 16px calc(116px + env(safe-area-inset-bottom))}.price-card{width:100%;min-width:0;max-width:560px;margin:0 auto;padding:24px;background:#fff;border-radius:16px;box-shadow:0 10px 30px #142a3d1a}h1{margin:0;font-size:1.75rem;color:#17324d}header p{margin:8px 0 24px;color:#5d6f7e}form{display:grid;gap:16px}label{display:grid;gap:7px;color:#2c3e50;font-weight:600}input,select,textarea,button{min-height:48px;border-radius:10px;font:inherit}input,select,textarea{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #b8c7d3;background:#fff;color:#17212b}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgb(44 138 115 / 25%);border-color:#2c8a73}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}button{border:0;padding:12px 18px;background:#19765f;color:#fff;font-weight:700;overflow-wrap:anywhere;white-space:normal;cursor:pointer}button:hover:not(:disabled){background:#115b49}button:focus-visible{outline:3px solid rgb(44 138 115 / 32%);outline-offset:2px}button:disabled{cursor:wait;opacity:.7}.status{margin:0;padding:10px 12px;border-radius:8px}.error{background:#fff0f0;color:#a82828}.success{background:#eaf8f1;color:#116344}.warning{background:#fff7e8;color:#765016}.language-selector{width:min(100%,240px)}.unit-preference{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0 0;padding:0;border:0}.unit-preference legend{grid-column:1 / -1;margin-bottom:2px;color:#2c3e50;font-weight:700}.unit-preference-option{display:flex;align-items:center;gap:9px;min-height:48px;padding:10px 12px;border:1px solid #b8c7d3;border-radius:10px;background:#fff;cursor:pointer}.unit-preference-option:has(input:checked){border-color:#19765f;background:#eef6f3;color:#145f4c}.unit-preference-option input{width:20px;min-height:20px;margin:0;accent-color:#19765f}.product-list,.store-list,.recent-records{display:grid;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid #dce5e9}.product-list h2,.store-list h2,.recent-records h2{margin:0;font-size:1.2rem;color:#17324d}.category-filter{min-width:0}.category-filter h3{margin:0 0 8px;color:#405665;font-size:.95rem}.category-options{display:flex;gap:8px;max-width:100%;padding:2px 1px 6px;overflow-x:auto;overscroll-behavior-inline:contain}.category-button{min-height:44px;flex:0 0 auto;padding:8px 15px;border:1px solid #b9c9c4;background:#fff;color:#315448;white-space:nowrap}.category-button:hover:not(:disabled){background:#eef6f3}.category-button[aria-pressed=true]{border-color:#19765f;background:#19765f;color:#fff}.category-button[aria-pressed=true]:hover:not(:disabled){background:#115b49}.product-search-label{display:block}.product-search-input{min-height:48px}.price-insights{display:grid;gap:12px;margin-top:24px;padding:16px;border:1px solid #cadbd5;border-radius:14px;background:#f6fbf9}.price-insights>h2{margin:0;color:#17324d;font-size:1.2rem}.price-insight-columns,.price-insight-columns>section,.price-insight-list{display:grid;gap:10px;min-width:0}.price-insight-columns>section>h3{margin:0;color:#405665;font-size:.95rem}.price-insight-card{width:100%;min-width:0;min-height:0;padding:12px;border:1px solid #d5e1e5;background:#fff;color:inherit;font-weight:400;text-align:left}.price-insight-card:hover:not(:disabled),.price-insight-card:focus-visible{border-color:#2c8a73;background:#fff;box-shadow:0 3px 10px #145c491f}.price-insight-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}.price-insight-heading strong{color:#17324d;overflow-wrap:anywhere}.price-insight-heading span{color:#405665;font-size:.85rem;font-weight:700}.price-insight-card.decrease .price-insight-heading span{color:#176b58}.price-insight-card.increase .price-insight-heading span{color:#9a4d22}.price-insight-card>p{margin:5px 0 0;color:#607383;font-size:.85rem;overflow-wrap:anywhere}.price-insight-card dl{margin-top:10px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.list-state{margin:0;color:#5d6f7e}.record-card,.product-card,.store-card{padding:16px;border:1px solid #d8e2e8;border-radius:12px;background:#fafdff}.product-card-container{display:grid;min-width:0;border:1px solid #d8e2e8;border-radius:12px;background:#fafdff;overflow:hidden}.product-card-container .product-card{border:0;border-radius:0}.product-card-container .add-shopping-button{margin:0 16px 16px}.product-card,.store-card{width:100%;min-height:0;color:inherit;font-weight:400;text-align:left;transition:border-color .2s,box-shadow .2s,transform .2s}.product-card:hover:not(:disabled),.product-card:focus-visible,.store-card:hover:not(:disabled),.store-card:focus-visible{border-color:#2c8a73;background:#fafdff;box-shadow:0 4px 14px #145c4924;transform:translateY(-1px)}.product-card:focus-visible,.store-card:focus-visible{outline:3px solid rgb(44 138 115 / 25%)}.record-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.record-heading>*{min-width:0}.record-heading h3{margin:0;color:#17324d;font-size:1.05rem;overflow-wrap:anywhere}.record-heading strong{color:#116344;white-space:nowrap}.unit-price{margin:5px 0 0;color:#526778;font-size:.9rem;font-weight:600;overflow-wrap:anywhere}.unit-price.unavailable{font-weight:400}.price-change{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:8px 0 0;color:#405665;font-size:.88rem;overflow-wrap:anywhere}.price-change strong{color:#17324d}.price-change.decrease strong{color:#176b58}.price-change.increase strong{color:#9a4d22}.price-change.unavailable{display:block;color:#687b88}.saved-result p{margin:0}.saved-result .unit-price{margin-top:4px;color:inherit}.save-confirmation{padding:14px;border:1px solid #d8c99f;border-radius:10px;background:#fffbf1}.save-confirmation p{margin:0;color:#60491e}.save-confirmation p+p{margin-top:4px}.confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 0}dl div{min-width:0}dt{color:#607383;font-size:.8rem}dd{margin:2px 0 0;color:#273846;overflow-wrap:anywhere}.back-button{min-height:44px;margin-bottom:20px;padding:8px 14px;background:#e6f1ed;color:#145f4c}.back-button:hover{background:#d4e8df}.detail-header{margin-bottom:24px}.detail-header p:first-child{margin-bottom:4px;font-weight:600;color:#2c8a73}.detail-header p:last-child{margin-top:8px}.detail-header .price-change{margin-top:-12px;margin-bottom:20px}.detail-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.record-new-price-button{width:100%}.add-shopping-button{min-height:44px;border:1px solid #9ebcb2;background:#fff;color:#145f4c}.add-shopping-button:hover:not(:disabled){background:#eef6f3}.store-comparison-section{display:grid;gap:12px;margin-bottom:28px;padding-top:4px}.store-comparison-section h2{margin:0;font-size:1.2rem;color:#17324d}.store-comparison-list{display:grid;gap:12px;min-width:0}.store-comparison-card{width:100%;min-width:0;min-height:0;padding:16px;border:1px solid #d8e2e8;background:#fafdff;color:inherit;font-weight:400;text-align:left}.store-comparison-card:hover:not(:disabled),.store-comparison-card:focus-visible{border-color:#2c8a73;background:#fafdff;box-shadow:0 4px 14px #145c4924}.best-value-badge{display:inline-block;margin-top:10px;padding:4px 8px;border:1px solid #2c8a73;border-radius:999px;background:#e7f5ef;color:#145f4c;font-size:.8rem;font-weight:700}.trend-section{display:grid;gap:12px;margin-bottom:28px;padding:18px 14px 12px;border:1px solid #d8e2e8;border-radius:12px;background:#fafdff;overflow:hidden}.trend-section h2{margin:0;font-size:1.2rem;color:#17324d}.trend-mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trend-mode-selector button{min-height:44px;padding:8px 10px;border:1px solid #b9c9c4;background:#fff;color:#315448}.trend-mode-selector button:hover:not(:disabled){background:#eef6f3}.trend-mode-selector button[aria-pressed=true]{border-color:#19765f;background:#19765f;color:#fff}.trend-mode-selector button[aria-pressed=true]:hover:not(:disabled){background:#115b49}.trend-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;color:#526778;font-size:.9rem}.trend-summary strong{color:#17324d}.trend-legend{display:flex;flex-wrap:wrap;gap:8px 14px;max-width:100%}.trend-legend-item{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#344c5d;font-size:.85rem;overflow-wrap:anywhere}.trend-legend-marker{width:12px;height:12px;flex:0 0 12px;border:1px solid #17324d;border-radius:50%}.trend-chart{display:block;width:100%;height:auto;overflow:hidden}.chart-axis{stroke:#aebdc7;stroke-width:1}.trend-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-point{stroke:#17324d;stroke-width:1.5}.trend-legend-marker.trend-series-0{background-color:#176b87}.trend-line.trend-series-0{stroke:#176b87}.trend-point.trend-series-0{fill:#176b87}.trend-legend-marker.trend-series-1{background-color:#a33d55}.trend-line.trend-series-1{stroke:#a33d55}.trend-point.trend-series-1{fill:#a33d55}.trend-legend-marker.trend-series-2{background-color:#5d6f24}.trend-line.trend-series-2{stroke:#5d6f24}.trend-point.trend-series-2{fill:#5d6f24}.trend-legend-marker.trend-series-3{background-color:#7b4aa1}.trend-line.trend-series-3{stroke:#7b4aa1}.trend-point.trend-series-3{fill:#7b4aa1}.trend-legend-marker.trend-series-4{background-color:#9a5a16}.trend-line.trend-series-4{stroke:#9a5a16}.trend-point.trend-series-4{fill:#9a5a16}.trend-legend-marker.trend-series-5{background-color:#276749}.trend-line.trend-series-5{stroke:#276749}.trend-point.trend-series-5{fill:#276749}.trend-legend-marker.trend-series-6{background-color:#8b3f8f}.trend-line.trend-series-6{stroke:#8b3f8f}.trend-point.trend-series-6{fill:#8b3f8f}.trend-legend-marker.trend-series-7{background-color:#3f5f9b}.trend-line.trend-series-7{stroke:#3f5f9b}.trend-point.trend-series-7{fill:#3f5f9b}.chart-price-label,.chart-date-label{fill:#526778;font-size:9px}.trend-hint{margin:0;padding:10px 12px;border-radius:8px;background:#eef6f3;color:#245f50}.history-list{display:grid;gap:12px}.history-list h2{margin:0;font-size:1.2rem;color:#17324d}.store-products{display:grid;gap:12px}.store-products h2{margin:0;font-size:1.2rem;color:#17324d}.record-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.record-actions .delete-record-button{margin-top:0}.correct-record-button{min-height:44px;padding:8px 14px;border:1px solid #9ebcb2;background:#fff;color:#145f4c}.correct-record-button:hover:not(:disabled){background:#eef6f3}.delete-record-button{min-height:44px;margin-top:14px;padding:8px 14px;border:1px solid #d5b8b8;background:#fff;color:#8c3333}.delete-record-button:hover:not(:disabled){background:#fff4f4}.correction-form{margin-top:16px;padding:16px;border:1px solid #bfd3cc;border-radius:10px;background:#f6fbf9}.correction-form h4{margin:0;color:#17324d;font-size:1rem}.correction-preview{padding:12px;border-radius:8px;background:#eaf4f0;color:#405665}.correction-preview>span{font-size:.85rem;font-weight:600}.correction-preview .unit-price{margin-top:2px;color:#17324d}.correction-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary-button{border:1px solid #b9c5cc;background:#fff;color:#405665}.secondary-button:hover:not(:disabled){background:#f2f6f7}.correction-confirmation{padding:14px;border:1px solid #c8d7d2;border-radius:10px;background:#fff}.correction-confirmation p{margin:0;color:#344c5d}.correction-confirmation p+p{margin-top:4px}.correction-confirmation .correction-actions{margin-top:14px}.delete-confirmation{margin-top:14px;padding:14px;border:1px solid #e1caca;border-radius:10px;background:#fff8f8}.delete-confirmation p{margin:0;color:#653737}.delete-confirmation p+p{margin-top:4px}.delete-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.cancel-delete-button,.confirm-delete-button{min-height:44px;padding:8px 12px}.cancel-delete-button{border:1px solid #b9c5cc;background:#fff;color:#405665}.cancel-delete-button:hover:not(:disabled){background:#f2f6f7}.confirm-delete-button{background:#a43b3b}.confirm-delete-button:hover:not(:disabled){background:#842f2f}.backup-panel{display:grid;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid #dce5e9}.backup-panel h2,.backup-panel h3{margin:0;color:#17324d}.backup-panel h2{font-size:1.2rem}.backup-panel h3{font-size:1rem}.backup-panel>p{margin:0;color:#5d6f7e}.backup-panel>.backup-encryption-warning{color:#7a4f20}.shopping-list{display:grid;gap:12px}.shopping-view-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shopping-view-selector button{min-height:44px;padding:8px 10px;border:1px solid #b9c9c4;background:#fff;color:#315448}.shopping-view-selector button:hover:not(:disabled){background:#eef6f3}.shopping-view-selector button[aria-pressed=true]{border-color:#19765f;background:#19765f;color:#fff}.shopping-estimate-summary{min-width:0;padding:14px;border:1px solid #bed4cc;border-radius:12px;background:#f0f8f5;overflow-wrap:anywhere}.shopping-estimate-summary dl{margin:0}.shopping-estimate-summary p{margin:12px 0 0;color:#526778;font-size:.85rem}.shopping-export{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid #d8e2e8;border-radius:12px;overflow-wrap:anywhere}.shopping-export h3{margin:0;color:#17324d;font-size:1rem}.shopping-export p{margin:0;color:#687b88;font-size:.88rem}.shopping-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shopping-export-actions button{min-height:44px;padding:8px 10px}.shopping-item-card{min-width:0;padding:16px;border:1px solid #d8e2e8;border-radius:12px;background:#fafdff;overflow-wrap:anywhere}.shopping-item-card.checked{background:#f3f5f5}.shopping-item-heading{display:grid;gap:6px;min-width:0}.shopping-item-heading>p{margin:0;color:#607383;overflow-wrap:anywhere}.shopping-check-label{display:flex;align-items:center;gap:8px;width:fit-content;font-size:.85rem}.shopping-check-label input{width:22px;min-height:22px;margin:0;accent-color:#19765f}.shopping-product-link{min-height:44px;padding:4px 0;background:transparent;color:#17324d;font-size:1.05rem;text-align:left}.shopping-product-link:hover:not(:disabled){background:transparent;color:#115b49;text-decoration:underline}.shopping-item-card.checked .shopping-product-link{color:#607383;text-decoration:line-through}.shopping-estimate-details{margin-top:14px;padding-top:14px;border-top:1px solid #dce5e9}.shopping-estimate-details strong{color:#116344}.shopping-estimate-unavailable{margin:14px 0 0;padding-top:12px;border-top:1px solid #dce5e9;color:#687b88}.shopping-store-group{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid #cbd9df;border-radius:14px;background:#f5f9fa}.shopping-store-group>header h3{margin:0;color:#17324d;font-size:1.05rem;overflow-wrap:anywhere}.shopping-store-group>header p{margin:4px 0 0;color:#526778;font-size:.88rem}.shopping-store-items{display:grid;gap:10px;min-width:0}.shopping-item-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.remove-shopping-button{border:1px solid #d5b8b8;background:#fff;color:#8c3333}.remove-shopping-button:hover:not(:disabled){background:#fff4f4}.dialog-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:16px;background:#0f1e288c;overflow-y:auto}.shopping-dialog{display:grid;gap:16px;width:min(100%,480px);max-height:calc(100vh - 32px);padding:22px;border-radius:14px;background:#fff;box-shadow:0 18px 50px #0000003d;overflow-y:auto}.shopping-dialog h2{margin:0;color:#17324d;font-size:1.25rem}.shopping-dialog>p{margin:0;color:#526778}.shopping-dialog-header p{margin:0 0 4px;color:#2c8a73;font-weight:600}.shopping-dialog-header strong{display:block;margin-top:6px;color:#405665;overflow-wrap:anywhere}.shopping-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.backup-file-label{padding:12px;border:1px dashed #a8bbb4;border-radius:10px;background:#f8fbfa}.backup-file-label input{min-height:44px;padding:8px 0 0;border:0}.import-summary{padding:14px;border:1px solid #c9d9d3;border-radius:10px;background:#f3f9f7}.import-summary ul{margin:10px 0;padding-left:22px}.import-summary p{margin:0;color:#405665}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.backup-export-actions{margin-top:0}.backup-password-dialog{display:grid;gap:12px}.backup-password-dialog label{display:grid;gap:6px;color:#344c5d;font-weight:600}.cancel-import-button{border:1px solid #b9c5cc;background:#fff;color:#405665}.cancel-import-button:hover:not(:disabled){background:#f2f6f7}.integrity-panel{display:grid;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid #dce5e9}.integrity-panel h2{margin:0;color:#17324d;font-size:1.2rem}.integrity-panel>p{margin:0;color:#5d6f7e}.integrity-report{display:grid;gap:10px;padding:14px;border:1px solid #c9d9d3;border-radius:10px;background:#f8fbfa;overflow-wrap:anywhere}.integrity-report>p{margin:0}.integrity-report ul{display:grid;gap:8px;margin:0;padding-left:22px}.integrity-report li span{display:block;margin-top:2px;color:#607383;font-size:.82rem}.pwa-status{display:grid;gap:10px;margin-top:28px;padding-top:24px;border-top:1px solid #dce5e9}.pwa-status h2{margin:0;color:#17324d;font-size:1.2rem}.pwa-status p{margin:0;color:#5d6f7e}.pwa-connection-status{display:flex;align-items:center;gap:8px}.status-dot{width:10px;height:10px;flex:0 0 10px;border:1px solid #17324d;border-radius:50%}.status-dot.online{background:#2c8a73}.status-dot.offline{background:#c27a2b}.status-dot.pending{background:#fff}.app-version{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-top:28px;padding-top:24px;border-top:1px solid #dce5e9}.app-version h2{margin:0;color:#17324d;font-size:1.2rem}.app-version p{margin:0;color:#405665;font-weight:700}.error-fallback-shell{display:grid;width:100%;min-height:100vh;place-items:center;padding:24px 16px}.error-fallback-card{display:grid;gap:16px;width:min(100%,560px);min-width:0;padding:24px;border-radius:16px;background:#fff;box-shadow:0 10px 30px #142a3d1a;overflow-wrap:anywhere}.error-fallback-card p{margin:0;color:#526778}.error-fallback-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bottom-navigation{position:fixed;z-index:20;right:0;bottom:0;left:0;padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #cad7dc;background:#fffffff5;box-shadow:0 -6px 20px #142a3d17;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-navigation-inner{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;max-width:560px;margin:0 auto}.bottom-navigation-button{min-width:0;min-height:52px;padding:8px 4px;background:transparent;color:#526778;font-size:.88rem;overflow-wrap:anywhere}.bottom-navigation-button:hover:not(:disabled){background:#eef6f3}.bottom-navigation-button[aria-current=page]{background:#dcefe8;color:#145f4c}@media(max-width:380px){.app-shell{padding:12px 12px calc(112px + env(safe-area-inset-bottom))}.price-card{padding:18px}.field-row,.unit-preference,.confirmation-actions,.correction-actions,.delete-actions,.backup-actions,.detail-primary-actions,.error-fallback-actions,.shopping-dialog-actions,.shopping-export-actions,dl{grid-template-columns:1fr}.bottom-navigation-button{padding-inline:1px;font-size:.74rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.product-card:hover:not(:disabled),.product-card:focus-visible,.store-card:hover:not(:disabled),.store-card:focus-visible{transform:none}}.pwa-update-toast{position:fixed;z-index:30;right:16px;bottom:calc(82px + env(safe-area-inset-bottom));left:16px;box-sizing:border-box;max-width:528px;margin:0 auto;padding:16px;border:1px solid #b9c9c4;border-radius:12px;background:#fff;box-shadow:0 8px 24px #142a3d33;overflow-wrap:anywhere}.pwa-update-toast p{margin:0;color:#273846}.pwa-update-toast .pwa-update-note{margin-top:6px;color:#765016}.pwa-update-toast .pwa-update-error{margin-top:6px;color:#a82828}.pwa-update-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.pwa-update-actions>:only-child{grid-column:1 / -1}.pwa-update-close{border:1px solid #b9c5cc;background:#fff;color:#405665}.pwa-update-close:hover:not(:disabled){background:#f2f6f7}
