:root{--bg:#140c06;--card:#24150a;--line:#4a2c14;--amber:#e0a040;--amber2:#c27a1f;--text:#f5e6c8;--mut:#b49a78}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#2a1709,var(--bg) 60%);color:var(--text);font:17px/1.4 system-ui,sans-serif;min-height:100vh;padding-bottom:84px}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}
h1{margin:0;font:600 1.3rem Georgia,serif;color:var(--amber)}h2{font-family:Georgia,serif;color:var(--amber);margin:.6em 0}
#offline{background:var(--amber2);color:#000;border-radius:8px;padding:2px 8px;font-size:.8rem}
main{padding:12px 16px;max-width:640px;margin:auto}.view{display:none}.view.active{display:block}
input,select,textarea{width:100%;min-height:48px;font-size:17px;background:#1b0f07;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:4px 0}
textarea{min-height:70px}.row{display:flex;gap:8px;align-items:center}.row input{flex:1}.row select{width:auto}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
.btn,.big{display:flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;border-radius:14px;border:1px solid var(--amber2);background:var(--card);color:var(--amber);font-size:17px;font-weight:600;cursor:pointer}
.big{width:100%;min-height:72px;font-size:1.25rem;margin:10px 0}.primary{min-height:120px;font-size:1.6rem;background:linear-gradient(#e0a040,#a8621a);color:#1a0d04;border:0}
.danger{border-color:#a33;color:#f88}.muted{color:var(--mut);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:10px 0;display:flex;gap:12px}
.card img{width:64px;height:84px;object-fit:cover;border-radius:8px}.card .b{flex:1;min-width:0}.card h3{margin:0 0 2px;font-size:1.05rem}
.tag{display:inline-block;background:#3a220e;color:var(--amber);border-radius:20px;padding:3px 10px;margin:2px;font-size:.85rem}
.tagpick .tag{padding:10px 14px;cursor:pointer;border:1px solid transparent}.tagpick .tag.on{background:var(--amber);color:#1a0d04}
.verdict{font:700 1.5rem Georgia,serif;padding:16px;border-radius:16px;text-align:center;margin:12px 0}.yes{background:#2f5a1d}.no{background:#5a3a14}.sim{background:#3a2a0e}
.score{float:right;color:var(--amber);font-weight:700}.prev{max-width:100%;max-height:180px;border-radius:12px;margin-top:8px}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#1b0f07;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;min-height:68px;background:none;border:0;color:var(--mut);font-size:1.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center}nav span{font-size:.75rem}nav .on{color:var(--amber)}
dialog{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:16px;width:min(96vw,600px);max-height:92vh;padding:16px}dialog::backdrop{background:#000a}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.acts>*{flex:1}

.ph{width:64px;height:84px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#5a3410,#2a1709);border:1px solid var(--line);font:700 1.1rem Georgia,serif;color:var(--amber)}
.ph.lg,.card img.lg{width:110px;height:150px;font-size:1.8rem}
.notes p{margin:.35em 0}.src{font-size:.78rem;color:var(--mut);word-break:break-word}.src a{color:var(--amber)}
.msrp{color:var(--amber);font-weight:700}.verdict.cat{background:#2b2340}
nav button{font-size:1.25rem}nav span{font-size:.7rem}

.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:9px;vertical-align:middle;letter-spacing:.03em}.badge.craft{background:#3d5a2a;color:#e6f2c8;border:1px solid #6c8f4a}

.badge.alloc{background:#5a2a2a;color:#f2d0d0;border:1px solid #a55}.prices{margin:8px 0;padding:8px;background:#1a0f08;border-radius:10px;border:1px solid #3d2818}
.prices .price-row{margin-top:4px}.prices .pay{color:var(--amber)}.prices.compact{font-size:.92rem}.src.warn{color:#e8b86a}
.shelf-box{margin:10px 0;padding:10px;border:1px dashed #6a4a28;border-radius:10px}.shelf-box input{width:100%;margin-top:6px}
.verdict-price{margin-top:8px;padding:10px;border-radius:10px;font-size:1rem}.verdict-price.great{background:#1e3d1e;color:#c8f0c8}
.verdict-price.fair{background:#2a2a1a;color:#e8e0a8}.verdict-price.above{background:#3d2a1a;color:#f0d0a0}
.verdict-price.wayover{background:#3d1a1a;color:#f0b0b0}.verdict-price.unknown{background:#222;color:#bbb}

/* Store: one-handed layout */
.snaprow{gap:8px}.snaprow>*{flex:1}#snapL2{display:none}.has-result #snapL{display:none}.has-result #snapL2{display:flex}
.has-result .store-top .big{min-height:60px}
.ta-wrap{position:relative}.sugg{position:absolute;left:0;right:0;top:100%;z-index:20;background:#1b0f07;border:1px solid var(--amber2);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #000a}
.sugg-i{display:flex;gap:10px;align-items:center;width:100%;min-height:56px;padding:6px 10px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);text-align:left;font-size:16px}
.sugg-i img,.sugg-i .ph{width:32px;height:42px;font-size:.7rem;border-radius:5px;object-fit:cover}.sugg-i small{display:block;color:var(--mut);font-size:.8rem}
.status-row{gap:8px;align-items:center}.snapthumb{width:44px;height:58px;object-fit:cover;border-radius:6px;flex:none}
.which{margin:8px 0;padding:10px;border:1px solid var(--amber2);border-radius:14px;background:#2a1a0a}.which-h{font:700 1.15rem Georgia,serif;color:var(--amber);margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{flex:1 1 45%;min-height:52px;border-radius:12px;border:1px solid var(--amber2);background:var(--card);color:var(--text);font-size:15px;font-weight:600;padding:6px 10px}.chip.on{background:var(--amber);color:#1a0d04}
.result-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px;margin-top:8px}.result-card .b{flex:1;min-width:0}.result-card h3{margin:0;font-size:1.1rem}
.result-card img{width:56px;height:74px;object-fit:cover;border-radius:8px}.result-card .ph{width:56px;height:74px}
.own-line{margin:8px 0;padding:10px 12px;border-radius:12px;font-weight:700}.own-line.yes{background:#2f5a1d}.own-line.no{background:#5a3a14}.own-line.sim{background:#3a2a0e}
.shelf-box label{font-weight:700;color:var(--amber)}.shelf-in{display:flex;align-items:center;gap:6px;font-size:1.6rem;color:var(--amber)}
.shelf-in input{font-size:1.6rem;min-height:60px;font-weight:700}.verdict-price .pct{float:right;font-weight:700}.verdict-price .second{margin-top:6px;padding-top:6px;border-top:1px solid #fff2;font-size:.92rem}
.verdict-price b{font-size:1.2rem}.store-details{margin:10px 0;border:1px solid var(--line);border-radius:12px;padding:8px 10px}.store-details summary{min-height:44px;display:flex;align-items:center;color:var(--amber);font-weight:600}
.sticky-bar{position:fixed;left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));display:flex;gap:8px;padding:8px 12px;background:#1b0f07ee;border-top:1px solid var(--line);z-index:15;backdrop-filter:blur(6px)}
.sticky-bar .btn{flex:1;min-height:56px}.primary-sm{background:linear-gradient(#e0a040,#a8621a);color:#1a0d04;border:0}
body.bar-on{padding-bottom:156px}#v-store:not(.active)~#storeBar{display:none}
.sticky-bar[hidden],.sugg[hidden]{display:none}
/* the hidden attribute must win over component display rules (.nag/.toast/… are display:flex) */
[hidden]{display:none!important}
/* notice/banner containers with nothing in them never take space (second line of defence) */
.nag:empty,.toast:empty,.fill-note:empty,.hit-msg:empty,.which:empty,.sugg:empty,.verdict:empty,.own-line:empty,.prices:empty,#ocrStatus:empty,#fillNote:empty,#collValue:empty,#priceLogUi:empty,#catExtra:empty,#bottleExtra:empty{display:none}
.sticky-bar .btn{white-space:nowrap;font-size:16px;padding:0 8px}
.nag{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#4a3010;border:1px solid var(--amber2);border-radius:12px;padding:8px 10px;margin-bottom:8px;font-weight:600}.nag span{flex:1 1 100%}.nag .btn{flex:1;min-height:44px}
.toast{position:fixed;left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:60;display:flex;gap:10px;align-items:center;background:#2b1a0b;border:1px solid var(--amber);border-radius:14px;padding:10px 12px;box-shadow:0 8px 24px #000c}.toast span{flex:1}.toast .btn{min-height:44px}.toast[hidden]{display:none}
.plan{width:100%;border-collapse:collapse;font-size:.92rem}.plan td,.plan th{border-bottom:1px solid var(--line);padding:6px 4px;text-align:right}.plan td:first-child,.plan th:first-child{text-align:left}
.dlg-head{position:sticky;top:-16px;z-index:5;display:flex;align-items:center;justify-content:space-between;background:var(--bg);margin:-16px -16px 8px;padding:12px 16px;border-bottom:1px solid var(--line)}.dlg-head h2{margin:0}
.x{min-width:48px;min-height:48px;border-radius:24px;border:1px solid var(--line);background:var(--card);color:var(--amber);font-size:1.2rem}
.scanbox{position:relative;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3}.scanbox video{width:100%;height:100%;object-fit:cover}
.scanline{position:absolute;left:8%;right:8%;top:50%;height:2px;background:#f44;box-shadow:0 0 8px #f44}
/* Phase B */
textarea,input,select,button{font-family:inherit}textarea{line-height:1.45;resize:vertical}
.stars{display:inline-block;letter-spacing:1px;background:linear-gradient(90deg,var(--amber) var(--p),#5a4632 var(--p));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.05em}
.inv{display:inline-block;font-size:.75rem;background:#2e1f10;border:1px solid var(--line);border-radius:8px;padding:1px 6px;margin-left:4px;color:var(--mut)}
.grid.lbl label,label.ta,label.wide{display:block;font-size:.8rem;color:var(--mut);font-weight:600}.grid.lbl label input,.grid.lbl label select,label.ta textarea{margin-top:2px;color:var(--text)}
label.wide{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:6px 10px 10px}legend{color:var(--amber);font-weight:700;padding:0 6px}
.chk{display:flex;gap:10px;align-items:center;min-height:48px}.chk input{width:24px;min-height:24px;margin:0}
.cv h3{margin:0 0 4px}.cv-row{display:grid;grid-template-columns:5.5em 5.5em 1fr;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--line)}.cv-row b{color:var(--amber);font-size:1.15rem;text-align:right}
.pl-row{display:flex;gap:8px;align-items:center;margin-top:6px}.pl-row label{font-weight:600;color:var(--mut)}.pl-row select{flex:1;min-height:48px}
.phist{background:#1a0f08;border:1px solid #3d2818;border-radius:10px;padding:6px 10px}.phist .low{color:#c8f0c8;font-weight:600;padding:4px 0}
.ph-row{display:grid;grid-template-columns:6.2em 1fr auto 40px;gap:8px;align-items:center;padding:2px 0;border-top:1px solid #3d2818;font-size:.92rem}.ph-row.is-low b{color:#c8f0c8}.ph-row .x{min-width:36px;min-height:36px;font-size:.9rem}
.target-row{display:flex;gap:8px;align-items:center;margin-top:10px}.target-row label{white-space:nowrap;font-weight:600;color:var(--amber)}.target-row input{flex:1}
.hit-msg,.badge.hitb{background:#1e3d1e;color:#c8f0c8;border:1px solid #4a8a4a}.hit-msg{border-radius:10px;padding:8px 10px;margin-top:6px;font-weight:700}
.tg{display:flex;gap:8px;align-items:center;padding:8px 10px;margin:6px 0;border:1px solid var(--line);border-radius:12px;background:var(--card)}.tg.hit{border-color:#4a8a4a;background:#173017}
.tg-n{flex:1;min-width:0}.tg-in{display:flex;align-items:center;gap:4px;color:var(--amber);font-weight:700;width:7.5em}.tg-in input{min-height:48px}
.cal{border:1px solid var(--line);border-radius:12px;margin:6px 0;padding:6px 10px;background:var(--card)}.cal.now{border-color:var(--amber)}.cal summary{min-height:44px;padding:6px 0;cursor:pointer}
.cal .when{display:inline-block;background:#3a220e;color:var(--amber);border-radius:8px;padding:1px 7px;font-size:.78rem;font-weight:700;margin-right:4px}.cal.now .when{background:var(--amber);color:#1a0d04}.cal .chip{flex:1 1 40%;min-height:44px;font-size:14px}
.drop-f{border:1px dashed #6a4a28;border-radius:12px;padding:8px 10px}.drop{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.links{padding-left:20px}.links li{margin:10px 0}.links a{color:var(--amber)}.small{font-size:.8rem}
.radar-wrap{display:flex;flex-direction:column;align-items:center;margin-top:6px}.radar{max-width:100%;height:auto}
.flv-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.sliders label{display:grid;grid-template-columns:3.6em 1fr 1.2em;gap:4px;align-items:center;font-size:.8rem;color:var(--mut)}.sliders input{min-height:32px;margin:0;padding:0;accent-color:var(--amber)}
.linkbtn{background:none;border:0;color:var(--amber);text-decoration:underline;font-size:.8rem;min-height:32px}
.cmp{width:100%;border-collapse:collapse;margin:8px 0}.cmp td,.cmp th{padding:6px;border-bottom:1px solid var(--line);text-align:left}.cmp tr.ok td:first-child::before{content:'✓ ';color:#8f8}.cmp tr.off td:first-child::before{content:'✗ ';color:#f88}
.blind-pick{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}#v-coll .row .big{flex:1}
@media (max-width:420px){.flv-grid{grid-template-columns:1fr}}
nav button span{white-space:nowrap}
.big-sugg .sugg-i{min-height:60px;font-size:17px}.big-sugg .sugg-i b{font-size:17px}.sugg-free{color:var(--mut);font-style:italic;justify-content:center}
dialog .sugg{max-height:60vh;overflow-y:auto}
.fill-note{margin:4px 0 6px;padding:8px 10px;border-radius:10px;background:#1e2e1a;border:1px solid #4a7a3a;font-size:.9rem}.fill-note a{color:var(--amber)}
.fill-conf{margin-top:6px;color:#e8b86a}.fill-conf .btn{min-height:44px;margin-top:6px;width:100%}
