
:root{--bg:#17130f;--card:#241e18;--gold:#c7a35c;--cream:#f5efe4;--muted:#b9aa96}
*{box-sizing:border-box} body{margin:0;background:linear-gradient(180deg,#17130f,#0f0d0a);color:var(--cream);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:18px max(18px,env(safe-area-inset-left));background:rgba(23,19,15,.94);backdrop-filter:blur(14px);border-bottom:1px solid #3b3025}
h1{margin:0;font-family:Georgia,serif;font-size:28px} .eyebrow{font-size:11px;letter-spacing:.2em;color:var(--gold);font-weight:700}
main{max-width:900px;margin:auto;padding:18px}.gold{background:var(--gold);color:#1b160f;border:0;border-radius:12px;padding:12px 16px;font-weight:800}.wide{width:100%}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.stats div{background:var(--card);padding:14px;border:1px solid #3c3024;border-radius:14px;text-align:center}.stats span{display:block;font-size:22px;font-weight:800}.stats small,.facts small{color:var(--muted)}
input,select,textarea{width:100%;background:#201a15;color:var(--cream);border:1px solid #44372a;border-radius:12px;padding:13px;font-size:16px;margin-bottom:10px}
#list{display:grid;gap:10px}.bottle{background:var(--card);border:1px solid #3c3024;border-radius:14px;padding:15px;cursor:pointer}.bottle h3{margin:4px 0 8px;font-family:Georgia,serif}.meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px}.pill{color:var(--gold);font-size:12px;font-weight:700}
.link{background:none;color:var(--gold);border:0;padding:5px 0 14px;font-size:15px}.detail-card{background:var(--card);border:1px solid #493a2a;border-radius:18px;padding:20px}.detail-card h2{font-family:Georgia,serif;font-size:30px;margin:8px 0 18px}.facts{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:18px}.facts div{background:#1c1713;border-radius:12px;padding:12px}.facts strong{display:block;margin-top:5px}
label{display:block;color:var(--muted);margin:13px 0} output{float:right;color:var(--gold)} .qr-help{font-size:12px;color:var(--muted);margin-top:12px}
dialog{width:min(94vw,500px);background:#1e1914;color:var(--cream);border:1px solid #5a4631;border-radius:18px;padding:16px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{background:none;border:0;color:white;font-size:28px}video{width:100%;border-radius:12px;background:#000;min-height:240px}
@media(max-width:600px){.facts{grid-template-columns:1fr 1fr}.facts div:first-child{grid-column:1/-1}}
.bottle{display:flex;align-items:center;gap:13px}.bottle-copy{min-width:0;flex:1}.bottle-thumb-wrap{width:64px;height:78px;flex:0 0 64px;border-radius:10px;overflow:hidden;background:#17130f;border:1px solid #493a2a;display:grid;place-items:center}.bottle-thumb{width:100%;height:100%;object-fit:cover}.photo-placeholder{font-size:25px;opacity:.55}
.photo-panel{margin:0 0 18px}.photo-panel>img{width:100%;max-height:430px;object-fit:contain;background:#15110e;border:1px solid #493a2a;border-radius:14px;margin-bottom:10px}.photo-empty{min-height:190px;border:1px dashed #695237;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:6px;margin-bottom:10px}.photo-empty span{font-size:40px}.photo-empty strong{color:var(--cream)}.photo-empty small{max-width:260px}.photo-button{display:block;text-align:center;margin:0;cursor:pointer}.photo-button input{position:absolute;left:-9999px;width:1px;height:1px}.danger-link{display:block;margin:10px auto 0;background:none;border:0;color:#e0a899;font-size:14px}.photo-status{text-align:center;color:var(--gold);font-size:13px;min-height:20px;margin-top:6px}

.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary-photo-button{background:#2b241c;color:var(--cream);border:1px solid #695237}@media(max-width:520px){.photo-actions{grid-template-columns:1fr}}

.header-actions{display:flex;gap:8px;align-items:center}.header-actions button{white-space:nowrap}.form-help{text-align:center;color:var(--muted);font-size:13px;margin:12px 0 0}@media(max-width:540px){header{align-items:flex-start}.header-actions{flex-direction:column;align-items:stretch}.header-actions button{padding:9px 11px;font-size:12px}}

.bottle-labels{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.review-badge{font-size:10px;letter-spacing:.08em;font-weight:800;color:#17130f;background:var(--gold);border-radius:999px;padding:3px 7px}.bottle-thumb.review-fallback{object-fit:cover;object-position:left center;filter:saturate(.9)}
.review-panel{margin:0 0 18px;background:#17130f;border:1px solid #5b452c;border-radius:14px;padding:12px}.review-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:10px}.review-heading h3{font-family:Georgia,serif;margin:2px 0 0;font-size:22px}.review-heading strong{font-size:22px;color:var(--gold);white-space:nowrap}.review-panel a{display:block}.review-panel img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid #493a2a;background:#0d0b09}.review-panel small{display:block;text-align:center;color:var(--muted);padding-top:8px}
.detail-top-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.detail-top-actions .link{padding-bottom:5px}.edit-button{padding:9px 14px}.delete-bottle{margin-top:14px;background:#3b1717;color:#ffd6d0;border:1px solid #8d3c34;border-radius:12px;padding:12px 16px;font-weight:800}@media(max-width:460px){.detail-top-actions{align-items:center}.edit-button{font-size:13px;padding:9px 12px}}

.backup-actions{margin:18px 0 24px;display:grid;gap:10px}
.restore-button{display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center}
.restore-button input{display:none}

/* Access gate */
.access-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top,#2a2118 0,#17130f 45%,#0f0d0a 100%)}
.access-gate[hidden]{display:none}.access-card{width:min(92vw,380px);padding:30px 24px;background:#241e18;border:1px solid #5a4631;border-radius:20px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.access-card h2{font:700 34px Georgia,serif;margin:8px 0 10px}.access-card p{color:var(--muted);margin:0 0 16px}.access-card input{text-align:center;font-size:28px;letter-spacing:.45em;padding-left:.45em}.access-error{min-height:22px;color:#e0a899;margin-top:12px;font-size:14px}
body.locked>header,body.locked>main{visibility:hidden}
