:root{--wine:#a4142d;--cream:#f8f5ef;--ink:#302727;--muted:#706264;--line:#dfd1c9}*{box-sizing:border-box}body{margin:0;background:#ece4da;color:var(--ink);font-family:'TT Commons Pro',Arial,sans-serif;font-synthesis:none}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid var(--wine);outline-offset:3px}.app{max-width:480px;min-height:100dvh;margin:auto;background:var(--cream);padding-bottom:95px;box-shadow:0 0 60px #3027270b}header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;height:100px;border-bottom:1px solid var(--line);background:#f8f9fa;gap:15px}header img{display:block;width:174px;height:auto}header button,.primary{background:var(--wine);color:#fff;border:1px solid var(--wine);padding:13px 16px;font-weight:600}header button{font-size:13px}.local{font-size:10px;background:#ece4da;color:#675751;text-align:center;padding:9px 12px;letter-spacing:.4px}main{padding:0 22px}h1{font-size:43px;font-weight:800;line-height:1.03;letter-spacing:-1.5px;margin:18px 0}h1 em{color:var(--wine);font-style:normal}h2{font-size:27px;font-weight:800;line-height:1.1;letter-spacing:-.5px}p{color:var(--muted);font-size:16px;line-height:1.5}.hero{padding:26px 0 22px}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:800;color:var(--wine)}.event{font-size:11px;color:var(--wine);margin-top:20px;font-weight:600}.feature{margin:0 0 24px;background:#541022}.feature img{display:block;width:100%;height:auto}.feature figcaption{padding:16px;color:white;font-size:20px;font-weight:600}.search{font-size:12px;font-weight:600;display:block}.search input{display:block;margin-top:8px;width:100%;min-height:48px;padding:12px;background:white;border:1px solid var(--line);border-radius:0;font-size:16px}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin:23px 0 5px}.sectionhead h2{margin:0}.sectionhead small{font-size:12px;color:var(--muted)}.winery{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.winery>img{width:64px;height:74px;object-fit:contain;background:#fff}.winery div{flex:1}.winery h3{font-size:23px;line-height:1.15;margin:0 0 8px;letter-spacing:-.3px}.winery small{font-size:12px;color:var(--wine)}.winery>span{font-size:22px;color:var(--wine)}.back{display:inline-block;margin-top:23px;color:var(--wine);font-size:14px}.wine{margin:0 0 18px;background:#fff;border:1px solid var(--line)}.wine-top{display:flex;align-items:center;gap:16px;padding:18px}.wine-top>img{width:95px;height:155px;object-fit:contain;flex-shrink:0;background:#f8f5ef}.wine-top>div{min-width:0}.wine h3{font-size:25px;line-height:1.13;margin:10px 0;overflow-wrap:anywhere}.wine p{font-size:13px;margin:7px 0}.rating{padding:14px 14px 9px;border-top:1px solid var(--line)}.rating-label{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.rating-label>span:last-child{color:var(--wine)}.stars{display:flex;justify-content:space-between;margin-top:8px}.stars button{width:48px;height:48px;background:none;border:0;color:#b9aca2;font:32px Arial,sans-serif;padding:0}.stars .on{color:var(--wine)}nav{position:fixed;bottom:0;max-width:480px;width:100%;display:flex;justify-content:space-around;padding:10px 8px max(13px,env(safe-area-inset-bottom));background:#fffdfaee;backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:3}nav a{min-width:85px;text-align:center;font-size:12px;color:var(--muted)}nav a>span{display:block;font:23px Arial;margin-bottom:6px}nav .active{color:var(--wine);font-weight:600}nav b{font-size:10px}footer{padding:25px 15px;text-align:center;font-size:11px;color:var(--muted)}.primary,.secondary{display:block;width:100%;min-height:48px;border-radius:0;font-size:16px;padding:13px 16px}.secondary{background:#fff;border:1px solid var(--line);color:var(--wine);margin:15px 0}.help{font-size:12px;color:var(--muted)}.notice{padding:15px;background:#ece4da;border-left:3px solid var(--wine);font-size:13px;line-height:1.6;margin-bottom:20px}.empty{padding:22px 0 40px;text-align:center}.vote-group{border-top:2px solid var(--wine);padding-top:18px;margin:0 0 30px}.group-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.group-heading h2{font-size:23px;margin:0;overflow-wrap:anywhere}.group-heading strong{font-size:22px;color:var(--wine);white-space:nowrap;text-align:right}.group-heading small{display:block;font-size:10px;color:var(--muted);font-weight:400}li{margin:12px 0;line-height:1.6}dialog{border:0;border-radius:0;padding:26px;background:var(--cream);color:var(--ink);width:calc(100% - 26px);max-width:420px;max-height:92dvh;overflow-y:auto}dialog::backdrop{background:#302727b8;backdrop-filter:blur(3px)}dialog h2{font-size:33px;margin:18px 0}.close{float:right;width:35px;height:35px;background:none;border:0;font-size:20px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:16px;margin:20px 0}.tabs button{background:none;border:0;padding:12px 0;flex:1;font-size:15px;color:var(--muted)}.tabs .active{border-bottom:2px solid var(--wine);color:var(--wine);font-weight:600}dialog label{display:block;margin:15px 0 7px;font-size:13px;font-weight:600}dialog input{width:100%;min-height:48px;padding:12px;background:white;border:1px solid var(--line);border-radius:0;font-size:16px}#auth-error{font-size:13px;color:var(--wine)}.forgot{display:inline-block;color:var(--wine);font-size:12px;margin-top:20px}#toast{display:none;position:fixed;z-index:8;bottom:100px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 30px);width:max-content;max-width:min(450px,calc(100vw - 30px));padding:16px 22px;background:var(--wine);color:white;font-size:14px;box-shadow:0 4px 25px #30272722}#toast.error{background:#541022}[hidden]{display:none!important}@media(max-width:350px){main{padding:0 15px}header{padding-inline:15px}header img{width:145px}h1{font-size:37px}.wine-top{padding:14px;gap:12px}.wine-top>img{width:77px}.stars button{width:42px}}

.winery img.winery-logo{object-fit:contain;background:#fff;padding:4px}.winery-detail-logo{display:block;width:112px;height:112px;object-fit:contain;background:#fff;margin:18px 0}

nav a,nav button{flex:1;min-width:0;min-height:48px;text-align:center;font-size:11px;color:var(--muted)}nav button{border:0;background:transparent;padding:0;font-family:inherit}nav button>span{display:block;font:23px Arial;margin-bottom:6px}nav #scan-qr{color:var(--wine);font-weight:600}.qr-view{position:relative;aspect-ratio:4/3;background:#302727;overflow:hidden}.qr-view video{display:block;width:100%;height:100%;object-fit:contain}.qr-frame{position:absolute;inset:15% 23%;border:3px solid #fff;border-radius:12px;pointer-events:none}#qr-scanner [role=status]{min-height:48px;font-size:14px}.qr-photo{text-align:center;cursor:pointer}#qr-scanner .secondary{margin:12px 0}

.ticket-card{background:#fff;border:1px solid var(--line);padding:20px;margin-bottom:18px}.ticket-card h2{overflow-wrap:anywhere}.ticket-pdf{text-align:center;font-size:15px}.ticket-order{display:inline-block;margin-top:16px;color:var(--wine);font-size:14px}

/* Inverse bottom navigation: clear contrast against the cream content. */
.app>nav{background:var(--wine);border-top:1px solid #ffffff35;backdrop-filter:none;box-shadow:0 -4px 20px #54102226;gap:4px;padding:8px 6px max(10px,env(safe-area-inset-bottom))}
.app>nav a,.app>nav button,.app>nav #scan-qr{color:#fff;border-radius:4px;padding:7px 2px;min-height:56px;font-weight:600}
.app>nav a.active{background:var(--cream);color:var(--wine);font-weight:800}
.app>nav #scan-qr>span{font-weight:700}
.app>nav :focus-visible{outline:2px solid #fff;outline-offset:2px}

.profile-information{padding:12px 0 24px}.profile-information h2{font-size:23px}.profile-information>a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 0;min-height:48px;border-bottom:1px solid var(--line);font-size:16px;color:var(--wine)}.profile-information>a>span{flex-shrink:0}.auth-information a{color:var(--wine);text-decoration:underline;text-underline-offset:3px;line-height:1.9}
@font-face{font-family:BVGoogleSans;src:url('vendor/google-sans-signin.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
.google-signin-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;padding:11px 12px;margin:22px 0 0;background:#1a73e8;border:1px solid #1a73e8;border-radius:4px;color:#fff;font-family:BVGoogleSans,Arial,sans-serif;font-weight:500;font-size:16px;line-height:20px;box-shadow:0 2px 6px #30272712}
.google-signin-button img{display:block;width:32px;height:32px;flex:0 0 32px;padding:6px;object-fit:contain;background:#fff;border-radius:3px}.google-signin-button:hover{background:#1765cc;border-color:#1765cc;box-shadow:0 2px 9px #30272728}.google-help{text-align:center;font-size:13px;line-height:1.5;margin:10px 0 18px;color:var(--muted)}.google-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:20px 0 0}.google-divider:before,.google-divider:after{content:'';height:1px;background:var(--line);flex:1}

.profile-benefits{display:flex;gap:12px;flex-wrap:wrap}.profile-benefits a{flex:1;white-space:nowrap;text-align:center}.reward-card{border:1px solid #e4ded8;border-radius:16px;overflow:hidden;margin:20px 0;background:#fff}.reward-card>img{display:block;width:100%;height:auto;max-height:320px;object-fit:contain;background:#e5e5e5}.reward-card>div{padding:24px}.reward-card p{white-space:pre-line}

.top-wines{margin-bottom:30px}.top-wines h2{margin:0 0 10px}.top-wines ol{list-style:none;margin:0;padding:0}.top-wines li{margin:0}.top-wine{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.top-rank{color:var(--wine);font-size:20px;font-weight:800}.top-wine img{width:46px;height:74px;object-fit:contain;background:white}.top-wine-name{flex:1;min-width:0}.top-wine-name strong{display:block;font-size:18px;line-height:1.15;overflow-wrap:anywhere}.top-wine-name small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.top-score{color:var(--wine);font-size:22px;white-space:nowrap}.top-score small{display:block;font-size:11px;text-align:right;font-weight:400}details.vote-group{padding:0;margin-bottom:12px;border:1px solid var(--line);border-top:2px solid var(--wine);background:#fff}summary.group-heading{padding:18px 14px;margin:0;cursor:pointer;list-style:none;gap:10px;min-height:80px}summary.group-heading::-webkit-details-marker{display:none}.group-name{flex:1;min-width:0;font-size:21px;font-weight:600;overflow-wrap:anywhere}.group-name small{margin-top:6px}.group-arrow{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--wine);color:#fff;font-size:0;transition:transform .15s}.group-arrow::after{content:"";display:block;width:12px;height:12px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:translateY(-3px) rotate(45deg)}details[open] .group-arrow{transform:rotate(180deg)}.group-wines{padding:0 12px 12px}.group-wines>.back{margin:0 0 18px}.group-wines .wine:last-child{margin-bottom:0}

.group-identity{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.group-logo{display:block;width:44px;height:44px;flex:0 0 44px;object-fit:contain;background:#fff}@media(max-width:350px){.group-identity{gap:7px}.group-logo{width:34px;height:34px;flex-basis:34px}summary.group-heading{gap:8px}.group-name{font-size:19px}}

.close{width:44px;height:44px}.password-toggle{display:block;background:none;border:0;color:var(--wine);min-height:44px;padding:8px 0;text-decoration:underline;font-size:13px}.wine-progress{padding:16px;background:#ece4da;margin-top:20px;font-size:14px;color:var(--wine)}.wine-progress progress{display:block;width:100%;height:10px;margin-top:10px;accent-color:var(--wine)}.wine-complete{border:1px solid var(--line);background:#fff;padding:20px;margin-bottom:22px}.wine-complete h2{font-size:24px;margin:0 0 10px}.wine-complete p{font-size:14px}.wine-complete .back{margin-top:16px}

.tabs button[data-mode="register"]{background:var(--wine);color:#fff;padding:12px 10px;border-bottom:2px solid var(--wine);font-weight:600}.tabs button[data-mode="register"]:hover,.tabs button[data-mode="register"].active{background:#741025;border-bottom-color:#741025}.tabs button[data-mode="register"].active{box-shadow:inset 0 0 0 2px #fff}

.google-loading{text-align:center;padding:36px 24px;max-width:calc(100vw - 32px);width:380px}.google-loading::backdrop{background:#302727a6}.google-loading h2{font-size:27px;line-height:1.2;margin:20px 0 12px}.google-loading p{font-size:16px;line-height:1.5;margin:0}.google-spinner{display:block;width:48px;height:48px;margin:0 auto;border:4px solid #dbe8fc;border-top-color:#1a73e8;border-radius:50%;animation:bv-google-spin .85s linear infinite}@keyframes bv-google-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.google-spinner{animation:none}}

.how-to-vote{margin:0 0 26px;padding:20px 18px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--wine)}.how-to-vote h2{font-size:24px;line-height:1.2;margin:0 0 16px}.how-to-vote ol{list-style:none;margin:0;padding:0}.how-to-vote li{display:flex;align-items:center;gap:12px;margin:0;padding:12px 0;font-size:16px;line-height:1.4}.how-to-vote li+li{border-top:1px solid var(--line)}.how-to-vote li:last-child{padding-bottom:0}.step-number{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--wine);color:#fff;font-size:19px;font-weight:600}
