:root{color-scheme:light;--bg:#f6f9f6;--white:#fff;--ink:#1c322b;--deep:#17483b;--sub:#647a6f;--green:#087c63;--mint:#e6f5ed;--line:#dbe8df;--red:#a83c39;--shadow:0 10px 35px #244c3420}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font:15px/1.55 system-ui,-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink)}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6ebaa2;outline-offset:2px}.wrap{width:min(100% - 32px,920px);margin:0 auto}
.app-header{background:#fff;border-bottom:1px solid var(--line)}.head-inner{display:flex;justify-content:space-between;align-items:center;padding:13px 0;gap:16px}.brand{display:flex;gap:10px;align-items:center;color:var(--deep);font-size:20px;line-height:1.05;font-weight:900;letter-spacing:-.04em}.brand small{font-size:11px;color:var(--sub);font-weight:600;display:block;margin-top:6px;letter-spacing:0}.brand-icon{width:42px;height:42px;border-radius:13px;background:var(--mint);display:grid;place-items:center;font-size:22px}.version{background:#eff6f2;color:#317d65;border:1px solid #d3e9dc;border-radius:30px;padding:5px 12px;font-size:11px;white-space:nowrap;font-weight:800}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;border:1px solid var(--line);border-radius:13px;background:#fff;margin:19px 0 24px;padding:5px}.tab{border:0;border-radius:9px;padding:12px 5px;background:transparent;color:var(--sub);font-weight:800;font-size:13px}.tab:hover{background:#f4faf6}.tab.active{background:var(--green);color:white;box-shadow:0 4px 13px #157c5630}.intro{padding:1px 3px 22px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--green)}h1{font-size:clamp(25px,4.1vw,37px);line-height:1.24;letter-spacing:-.05em;color:var(--deep);margin:8px 0 10px}.intro p,.page-head p{color:var(--sub);margin:0}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:17px}.section-head h2,.panel h2{font-size:19px;color:var(--deep);letter-spacing:-.025em;margin:0 0 3px}.section-head p,.desc{font-size:13px;color:var(--sub);margin:0}.sub-icon{font-size:25px}.items{display:grid;gap:11px}.item-card{background:#fff;border:1px solid var(--line);padding:15px;border-radius:14px}.item-card.winner{background:#fbfffc;border:2px solid #32aa85;padding:14px}.item-top{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:13px}.item-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900}.item-num{width:26px;height:26px;display:grid;place-items:center;color:#388c71;background:#e6f5ed;border-radius:7px}.item-actions{display:flex;align-items:center;gap:5px}.small-btn{background:#fff;border:1px solid #d5e6d9;padding:7px 9px;border-radius:8px;color:#2b6b58;font-size:12px;font-weight:800}.small-btn:hover{background:var(--mint)}.small-btn.danger{color:var(--red)}.inputs{display:grid;grid-template-columns:1.35fr 1fr .85fr .78fr;gap:9px}label{display:grid;gap:5px;color:#526c60;font-weight:700;font-size:12px}input,select{min-width:0;width:100%;border-radius:10px;border:1px solid #cfdfd4;background:#fff;padding:10px;min-height:43px;font-size:16px;color:var(--ink)}input::placeholder{color:#94a79a}input:focus,select:focus{border-color:var(--green)}.unit-line{min-height:26px;margin-top:9px;display:flex;justify-content:space-between;align-items:center;color:var(--sub);font-size:12px;gap:10px}.unit-line strong{color:var(--deep);font-size:17px}.history-hint{font-size:12px;color:#557467;background:#f2faf5;border-radius:8px;margin-top:9px;padding:8px}.buttonrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.btn{border:1px solid var(--green);border-radius:11px;padding:10px 16px;min-height:43px;background:var(--green);color:white;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background:#065f4c}.btn.secondary{background:#fff;border-color:#cddfd3;color:var(--deep)}.btn.secondary:hover{background:#f3f9f5}.btn.danger-outline{background:#fff;border-color:#eabdb9;color:var(--red)}.btn.danger-outline:hover{background:#fff5f4}.text-button{border:0;background:transparent;color:#257961;text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:800;padding:8px}.result{border:1px solid #bce7c8;border-radius:15px;background:linear-gradient(110deg,#ebf9ef,#f8fff9);padding:16px;margin-top:19px}.result-cap{color:#287d5b;font-size:12px;font-weight:900}.result-title{color:#12563c;font-size:19px;font-weight:900;margin-top:5px}.result-desc{color:#416957;font-size:13px;margin-top:7px}.group-result{border-top:1px solid #ceead7;padding:10px 0;margin-top:10px;font-size:13px}.group-result:first-of-type{border-top:0}.group-result ul{margin:5px 0 0;padding-left:18px}.group-result li{margin:3px 0}.privacy-note{font-size:12px;color:#586f63;background:#f4f8f5;padding:12px;border-radius:10px;margin-top:13px}.favorite-panel{margin-top:20px}.fav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fav-card{border:1px solid var(--line);border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:7px}.fav-card strong{font-size:14px;overflow-wrap:anywhere}.fav-card .meta{font-size:12px;color:var(--sub)}.fav-card .btn{margin-top:auto}.empty{background:#f6f9f7;color:var(--sub);font-size:13px;border-radius:11px;padding:17px;grid-column:1/-1}.mini-guide h2{font-size:18px;color:var(--deep)}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.guide-grid>div{border:1px solid var(--line);background:white;border-radius:12px;padding:15px}.guide-grid strong{display:block;color:var(--green);font-size:12px}.guide-grid b{display:block;margin:7px 0;font-size:14px}.guide-grid p{margin:0;color:var(--sub);font-size:12px}footer{font-size:12px;color:#73877b;padding:30px 0 35px}.page-head{display:flex;justify-content:space-between;gap:15px;align-items:center;padding-bottom:20px}.page-head h1{margin:8px 0}.count-pill{padding:6px 12px;border-radius:30px;background:#e7f4eb;color:#236a53;font-size:12px;font-weight:900}.list-tools{display:flex;align-items:end;gap:12px;margin-bottom:17px}.list-tools .grow{flex:1}.list-tools>label:last-child{min-width:155px}.record-list{display:grid;gap:9px}.record{border:1px solid var(--line);border-radius:13px;padding:15px;display:grid;gap:8px}.record-top{display:flex;justify-content:space-between;align-items:start;gap:9px}.record-name{font-size:15px;font-weight:900;overflow-wrap:anywhere}.record-meta{color:var(--sub);font-size:12px}.record-actions{display:flex;flex-wrap:wrap;gap:7px}.tag{border-radius:30px;background:#edf5ef;padding:3px 8px;font-size:11px;font-weight:800;color:#297151}.stats{background:#f4faf5;border:1px solid #dcecdf;border-radius:11px;padding:12px;margin-bottom:12px;display:flex;gap:14px;flex-wrap:wrap;color:var(--deep);font-size:13px}.stats b{font-size:16px}.settings-grid{display:grid;gap:15px}.settings-grid .panel{margin:0}.settings-grid .panel h2{margin-bottom:12px}.desc{line-height:1.8;margin-bottom:14px}.fine{font-size:12px;color:var(--sub);line-height:1.7}.import-label{display:inline-flex;align-items:center;border:1px solid #cddfd3;padding:10px 15px;border-radius:11px;margin:8px 0;min-height:43px;cursor:pointer;font-size:13px;font-weight:800;color:var(--deep)}.import-label input{display:none}.alert{border-radius:11px;padding:13px;margin:12px 0}.alert.error{border:1px solid #e4aaa6;color:#933c35;background:#fff5f2}
dialog{border:0;border-radius:17px;padding:0;width:min(95vw,510px);max-height:90vh;box-shadow:0 20px 70px #102a2590;color:var(--ink)}dialog::backdrop{background:#0f2d285c}.modal-form{padding:23px;display:grid;gap:15px}.modal-top{display:flex;justify-content:space-between;align-items:center}.modal-top h2{color:var(--deep);margin:0;font-size:21px}.close-modal{border:0;background:#eff4f0;color:#415f4e;width:35px;height:35px;border-radius:8px;font-size:20px}.modal-lead{color:var(--sub);font-size:13px;margin:0}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkline{display:flex;align-items:center;gap:8px;font-size:14px}.checkline input{width:18px;height:18px;min-height:0;accent-color:var(--green)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);visibility:hidden;opacity:0;color:#fff;background:#204c3d;border-radius:11px;padding:11px 18px;max-width:calc(100% - 32px);font-size:13px;box-shadow:0 5px 20px #143a2a30;transition:.2s;z-index:100}.toast.show{visibility:visible;transform:translate(-50%,0);opacity:1}
@media(max-width:720px){.wrap{width:min(100% - 26px,920px)}.panel{padding:16px}.fav-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inputs{grid-template-columns:1.35fr 1fr .9fr}.name-field{grid-column:1/-1}.guide-grid{grid-template-columns:1fr}.section-head h2{font-size:18px}}@media(max-width:430px){.brand{font-size:17px}.brand-icon{width:38px;height:38px}.version{font-size:9px;padding:5px 8px}.tabs{margin-top:13px;gap:1px}.tab{font-size:11px;padding:12px 1px}.intro{padding-bottom:15px}.intro h1{font-size:26px}.panel{padding:14px}.item-card{padding:12px}.item-card.winner{padding:11px}.item-actions{gap:4px}.small-btn{font-size:11px;padding:7px 6px}.inputs{gap:7px}.inputs input,.inputs select{padding:9px 7px}.fav-grid{gap:8px}.fav-card{padding:10px}.fav-card .btn{padding:8px;font-size:12px}.list-tools{display:grid;grid-template-columns:1fr 1fr}.list-tools label.grow{grid-column:1/-1}.list-tools>label:last-child{min-width:0}.modal-grid{grid-template-columns:1fr 1fr}.modal-form{padding:16px}.modal-actions .btn{flex:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* STEP 2.1: saved-value suggestions in the save dialog. */
.suggestion-box{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.suggestion-caption{width:100%;font-size:12px;font-weight:800;color:var(--sub)}
.suggestion-chip{border:1px solid #cde4d5;border-radius:999px;background:#f3faf5;color:#216e54;font-size:12px;font-weight:750;padding:8px 12px;max-width:100%;min-height:35px;overflow-wrap:anywhere;text-align:left}
.suggestion-chip:hover,.suggestion-chip:focus-visible{background:#def3e5;border-color:#7bbd9d}
.suggestion-empty{font-size:12px;color:var(--sub)}
.product-match-hint{margin:-6px 0 0}

/* STEP 2.2: frequent stores, last used store, and product/store comparisons */
.store-default-hint{margin:-7px 0 0;padding:8px 10px;background:#eff8f2;border-radius:9px}
.store-mini{margin-top:9px;padding:9px 11px;border:1px solid #d5eadc;background:#f8fdf9;border-radius:10px;font-size:12px;display:grid;gap:4px;color:#3c6150}
.store-mini strong{font-size:12px;color:var(--deep)}
.store-mini-row{overflow-wrap:anywhere}
.store-price-panel{border:1px solid #d8e7dc;border-radius:13px;background:#f7faf7;padding:13px;display:grid;gap:8px}
.store-price-panel h3{color:var(--deep);font-size:14px;margin:0}
.store-price-panel p{margin:0}
.store-price-list{display:grid;gap:6px;max-height:210px;overflow-y:auto}
.store-price-entry{border-radius:8px;background:white;border:1px solid #e1ede3;padding:9px 10px;display:grid;grid-template-columns:1fr auto;gap:3px 8px}
.store-price-entry strong{font-size:13px;overflow-wrap:anywhere}
.store-price-entry span{font-size:12px;text-align:right}
.store-price-entry small{grid-column:1/-1;color:var(--sub);font-size:11px}
@media(max-width:430px){.store-price-entry{grid-template-columns:1fr}.store-price-entry span{text-align:left}}


/* STEP 3 — PWA setup/status; compact on small screens. */
.alert.info{background:#eaf6f0;border:1px solid #c4e2ce;color:#205a48}
.pwa-panel{background:linear-gradient(135deg,#fafffb,#eff9f2)}
.pwa-state{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0 14px;color:var(--deep);font-size:13px}
.state-dot{height:10px;width:10px;border-radius:50%;background:#8c9c93;display:inline-block;flex:none}
.state-dot.ready{background:#15966d}.state-dot.offline{background:#d79b43}.state-dot.unavailable{background:#b4615c}
.pwa-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pwa-actions .btn{padding:10px 13px}
.pwa-help{margin:13px 0;border-top:1px solid var(--line);padding:10px 0;color:var(--sub);font-size:13px}
.pwa-help summary{font-weight:800;color:var(--deep);cursor:pointer}
.pwa-help p{line-height:1.75;margin:11px 0}
@media(max-width:430px){.pwa-actions .btn{flex:1 1 auto}}
