:root{--navy:#0b2545;--teal:#13a08a;--ink:#17222e;--muted:#5b6b7a;--line:#dbe4ec;--bg:#f7fafc;--card:#fff;--warn:#fff4d6}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);padding-bottom:76px}
a{color:var(--navy)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.15rem;color:var(--navy);text-decoration:none}
.topnav{display:flex;gap:14px}.topnav a{text-decoration:none;color:var(--muted);font-weight:600}
main{max-width:980px;margin:0 auto;padding:20px 16px 40px}
.hero{background:var(--navy);color:#fff;border-radius:18px;padding:34px 24px;text-align:center}
.hero h1{font-size:clamp(1.7rem,5vw,2.6rem);margin:0 0 10px}
.hero p{color:#cfe0f1;margin:0 auto 18px;max-width:560px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:12px;padding:12px 18px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;min-height:48px}
.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-ghost{background:#fff}
.btn-xl{font-size:1.1rem;padding:16px 22px}
.btn-danger{border-color:#b3261e;color:#b3261e}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:14px 0}
.fineprint{color:var(--muted);font-size:.85rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.card h3{margin:0 0 6px;color:var(--navy)} .card p{margin:0;color:var(--muted)}
.notice{border-radius:12px;padding:12px 14px;margin-top:16px}
.demo-banner{background:var(--warn);border:1px solid #e5c15c}
.frame-guide{border:3px dashed var(--teal);border-radius:14px;height:150px;display:flex;align-items:center;justify-content:center;color:var(--teal);font-weight:700;background:#fff;margin:12px 0}
.field{display:block;font-weight:600;margin:12px 0}
.field input,.field textarea,.field select{width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:14px 0}
.hint{color:var(--muted)}
#photoCanvas{max-width:100%;border-radius:12px;border:1px solid var(--line);background:#fff}
.result{border-radius:14px;padding:16px;margin-top:16px;background:#fff;border:1px solid var(--line)}
.result.ok{border-color:var(--teal)} .result.warn{border-color:#e5c15c;background:var(--warn)} .result.bad{border-color:#b3261e}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:700;background:#e6f4f1;color:#0c6b58}
.badge.demo{background:var(--warn);color:#7a5b00}.badge.unknown{background:#eee;color:#666}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;font-size:.95rem;vertical-align:top}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tablewrap table{min-width:560px}
.cart-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cart-title{font-size:1.15rem;font-weight:800;color:var(--navy)}
.cart-summary{cursor:pointer;list-style:none;display:block;padding:2px 0}
.cart-summary::-webkit-details-marker{display:none}
.cart-summary::after{content:"▸ prices";float:right;color:var(--teal);font-weight:700;font-size:.9rem}
details[open ]>.cart-summary::after{content:"▾ prices"}
.cart-sub{display:block;margin-top:4px}
.offers{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.offer{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.offer-best{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}
.offer-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.offer-retailer{font-weight:800;color:var(--navy);font-size:1.05rem}
.offer-price{font-size:1.55rem;font-weight:800;margin:8px 0 2px;line-height:1.15}
.offer-per{font-size:.9rem;font-weight:600;color:var(--muted)}
.offer-meta{color:var(--muted);font-size:.92rem;margin:4px 0 12px;line-height:1.5;overflow-wrap:anywhere}
.offer-buy{width:100%}
.tabbar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:20}
.tabbar a{text-decoration:none;color:var(--muted);font-weight:700;font-size:.9rem;padding:8px 10px}
.tabbar a.tab-scan{color:var(--teal)}
.footer{max-width:980px;margin:0 auto;padding:10px 16px 30px;color:var(--muted);font-size:.85rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
label.check{display:flex;gap:8px;align-items:flex-start;font-weight:500;margin:10px 0}
@media(min-width:760px){.tabbar{display:none}body{padding-bottom:0}}
@media(max-width:759px){.topnav{display:none}.offer-price{font-size:1.4rem}}
