:root{--red:#8c2030;--ink:#34383d;--ivory:#f5f1e9;--line:#d9d3c9}*{box-sizing:border-box}body{margin:0;background:var(--ivory);color:var(--ink);font:1rem/1.5 Arial,sans-serif}header{background:var(--red);color:#fff;padding:20px max(20px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;gap:16px;align-items:center}header a{color:white}header strong{font-size:1.2rem}header small{display:block}main{max-width:1100px;margin:auto;padding:24px 20px 50px}h1{font-size:1.8rem;margin:0}h2{font-size:1.2rem;margin:8px 0}p{margin:8px 0 16px}button,input,select,summary{font:inherit;min-height:48px}button,select,summary,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--red);border-radius:8px;background:var(--red);color:white;padding:10px 16px}button.secondary{background:white;color:var(--red)}button:disabled{opacity:.6;cursor:default}a{color:var(--red)}:focus-visible{outline:3px solid #ad853e;outline-offset:3px}label{display:block;font-weight:bold}input,select{width:100%;padding:10px;border:1px solid #8d8780;border-radius:6px;background:white;color:var(--ink);margin:5px 0 12px}.notice{border:1px solid var(--line);padding:12px 16px;background:#fff;margin:16px 0}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 16px}details{border-block:1px solid var(--line);margin:16px 0;padding:8px 0}summary{cursor:pointer;padding:12px 0}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.results{display:grid;grid-template-columns:1fr 1fr;gap:24px}.pub-list{max-height:630px;overflow:auto;padding:0 6px 0 0;list-style:none;margin:0}.pub-list li{padding:16px 0;border-bottom:1px solid var(--line)}.pub-list h2{margin:0}.pub-list button{background:transparent;border:0;color:var(--red);padding:0;text-align:left;text-decoration:underline;min-height:48px;font-weight:bold}.tag{font-size:.875rem;color:#56534f}.map-column{min-width:0}#pub-map{height:440px;background:#e6e1d6;border:1px solid var(--line);border-radius:10px}.leaflet-container{font-family:Arial,sans-serif!important}.leaflet-control-zoom a{min-width:48px;min-height:48px;line-height:48px!important}.leaflet-control-attribution a{min-height:0}.map-note{font-size:.875rem}.detail{background:#fff;padding:20px;border-top:4px solid var(--red);margin-top:24px;overflow-wrap:anywhere}.detail dl{display:grid;grid-template-columns:130px 1fr;gap:8px}.detail dt{font-weight:bold}.detail dd{margin:0}footer{margin-top:30px;font-size:.8rem;color:#5e5c58}.loading{padding:24px}.empty{padding:20px;border:1px solid var(--line)}@media(max-width:700px){header{padding:16px 20px}.results{grid-template-columns:1fr}.map-column{grid-row:1}.pub-list{max-height:none}#pub-map{height:320px}.detail dl{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}main{padding-top:20px}}@media(max-width:380px){.filters{grid-template-columns:1fr}}

.nearby{margin-top:20px;padding:16px 0;border-top:1px solid var(--line)}.nearby .map-note{max-width:70ch}

textarea{display:block;width:100%;min-height:110px;font:inherit;padding:10px;border:1px solid #8d8780;border-radius:6px;background:#fff;color:var(--ink);margin:5px 0 12px}.correction-list{list-style:none;padding:0}.correction-list li{border-top:1px solid var(--line);padding:16px 0;overflow-wrap:anywhere}.correction-list dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}.correction-list dd{margin:0}.correction-form summary,.correction-queue summary{font-weight:bold}

.check{display:flex;align-items:center;gap:12px;font-weight:normal;margin:12px 0}.check input{width:24px;min-height:24px;margin:0}.saved-comments{white-space:pre-wrap;overflow-wrap:anywhere}fieldset{border:1px solid var(--line);padding:16px}legend{font-weight:bold}.visit-form h3{margin-top:24px}

.check{min-height:48px}
.passport-panel>.correction-list>li>h3[tabindex="-1"],.passport-panel>.review-notices>li[tabindex="-1"]{scroll-margin-top:var(--passport-nav-clearance,130px)}

.ranking-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}.ranking-columns section{min-width:0}.ranking-list{list-style:none;padding:0}.ranking-list li{border-top:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.ranking-list h4{font-size:1rem;margin:0 0 8px}.ranking-list p{max-width:70ch}.comparison-sharing button{margin:6px 8px 6px 0}

.private-challenge-list{list-style:none;padding:0}.private-challenge-list>li{border-top:1px solid var(--line);padding:16px 0;overflow-wrap:anywhere}.private-challenges button{margin:6px 8px 6px 0}.private-challenges progress{width:100%;height:20px;accent-color:var(--red)}

.official-challenge-list{list-style:none;padding:0}.official-challenge-list>li{border-top:1px solid var(--line);padding:16px 0;overflow-wrap:anywhere}.official-challenges button{margin:6px 8px 6px 0}.official-challenges progress{width:100%;height:20px;accent-color:var(--red)}

.official-comparison table{width:100%;max-width:42rem;border-collapse:collapse;margin:16px 0;font-variant-numeric:tabular-nums}.official-comparison caption{text-align:left;margin-bottom:12px}.official-comparison th,.official-comparison td{text-align:left;padding:12px 8px;border-bottom:1px solid #d8d0c4;vertical-align:top}.official-comparison th:first-child,.official-comparison td:first-child{padding-left:0}

.official-comparison th:last-child{white-space:nowrap}

.challenge-badge{margin:20px 0;padding:16px 0;border-top:1px solid #d8d0c4;border-bottom:1px solid #d8d0c4}.badge-earned{color:var(--red);display:flex;align-items:center;gap:12px}.badge-earned svg{flex-shrink:0}

.milestone-badges{list-style:none;padding:0}.milestone-badges>li{padding:12px 0;border-top:1px solid #d8d0c4}.milestone-badges>li p{margin:8px 0}.challenge-badge h4{font-size:1.1rem}

.report-totals{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px 20px;max-width:48rem}.report-totals dd{margin:0;font-variant-numeric:tabular-nums}.personal-report section{margin-top:28px}.personal-report button{margin:8px 8px 8px 0}

.csv-download{display:inline-block;min-height:48px;margin:8px;padding:10px 16px;border:1px solid var(--red);border-radius:8px;background:white;color:var(--red);text-decoration:underline}
.operational-monitoring p{max-width:75ch}.monitoring-facts{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:10px 20px;max-width:850px}.monitoring-facts dt{font-weight:bold}.monitoring-facts dd{margin:0;overflow-wrap:anywhere}.monitoring-table{overflow-x:auto;max-width:100%;margin:18px 0;font-variant-numeric:tabular-nums}.monitoring-table table{width:100%;border-collapse:collapse;text-align:left}.monitoring-table caption{text-align:left;margin-bottom:12px}.monitoring-table th,.monitoring-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}.monitoring-table th:first-child{padding-left:0}.incident-reference{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.operational-monitoring h3{margin-top:28px}@media(max-width:700px){.monitoring-facts{grid-template-columns:1fr;gap:4px}.monitoring-facts dd{margin-bottom:12px}}

.directions-panel{margin:32px 0;padding:24px 0;border-top:1px solid var(--line)}.directions-panel p{max-width:75ch}.itinerary-list{padding-left:24px}.itinerary-list>li{padding:16px 0;border-bottom:1px solid var(--line)}.directions-panel .csv-download{overflow-wrap:anywhere}.directions-panel h3{margin-top:24px}

.historical-review{max-width:76ch}.historical-review h2{margin-top:36px}.historical-review h3{font-size:1.1rem;margin-top:20px}.review-choices,.historical-rows{padding-left:24px}.review-choices>li,.historical-rows>li{padding:16px 0;border-bottom:1px solid var(--line)}.review-fingerprint{overflow-wrap:anywhere}.historical-review details{margin:16px 0}.historical-review section{padding:16px 0;border-bottom:1px solid var(--line)}.historical-review button{margin:8px 12px 8px 0}.historical-review summary{min-height:48px;padding:12px 0;cursor:pointer}.historical-review .report-totals{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}

.pilot-nav{position:sticky;top:0;z-index:1001;display:flex;flex-wrap:wrap;gap:4px 16px;background:#f5f1e9;border-bottom:1px solid var(--line);padding:8px 0}.pilot-nav a,.search-results-link{display:inline-flex;align-items:center;min-height:48px;font-weight:bold}section[id],#pub-search,#directory-results{scroll-margin-top:var(--passport-nav-clearance,130px)}.pub-pages{grid-column:1;grid-row:2}.pub-cluster span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#8c2030;color:#fff;border:2px solid #fff;font-weight:bold}.map-column{grid-column:2;grid-row:1 / span 2}@media(max-width:700px){.map-column{grid-column:1;grid-row:3}.pub-pages{grid-row:2}.pub-list{overflow:visible}.pilot-nav{font-size:.9rem;gap:0 12px}}

.view-switch{display:flex;gap:0;margin:16px 0}.view-switch button{min-width:96px;border-radius:0;background:white;color:var(--red)}.view-switch button:first-child{border-radius:8px 0 0 8px}.view-switch button:last-child{border-radius:0 8px 8px 0}.view-switch button[aria-pressed="true"]{background:var(--red);color:white}.results[data-view]{display:block}.results [hidden]{display:none}.results[data-view="map"] .map-column{max-width:100%}

.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:12px 16px;min-height:48px;background:#fff;color:#8c2030;border:2px solid #8c2030;transform:translateY(-200%)}.skip-link:focus{transform:none}

/* Allow enlarged text to reflow without clipping navigation or form controls. */
header{flex-wrap:wrap}header>*{min-width:0;max-width:100%}
main,header{overflow-wrap:anywhere}.filters>*{min-width:0}
input,select,textarea{min-width:0;max-width:100%}fieldset{min-inline-size:0}
/* Keep Safari's native date editor inside its grid cell at enlarged page sizes. */
input[type="date"]{display:block;appearance:none;-webkit-appearance:none;inline-size:100%;min-inline-size:0;max-inline-size:100%}
input[type="date"]::-webkit-date-and-time-value{min-width:0;text-align:start}
input[type="date"]::-webkit-datetime-edit{min-width:0;padding:0}
button{max-width:100%;overflow-wrap:anywhere}
input:focus-within,select:focus-within,textarea:focus-within{outline:3px solid #ad853e;outline-offset:3px}

.receipt-reference{overflow-wrap:anywhere}

/* Keep the return action and focused record heading aligned. */
.activity-destination>.activity-back{display:block;margin:0 0 8px}
.activity-destination>h2{margin:0 0 12px;padding:5px 8px}
.activity-destination>h2:focus-visible{outline-offset:-3px}


.passport-stamps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;padding:0;list-style:none;max-width:760px}
.passport-stamps>li{min-width:0}
.passport-stamp{border:1.5px solid var(--red);outline:1px solid #bb818c;outline-offset:-6px;border-radius:3px;padding:20px 16px;text-align:center;color:var(--red);height:100%;overflow-wrap:anywhere}
.passport-stamp h4{font-size:1.1rem;margin:0 0 8px;text-decoration:underline}
.passport-stamp p{margin:8px 0}
.passport-stamp time{display:block;font-weight:bold;font-size:1.1rem}
.passport-stamp .stamp-earned{font-weight:bold}
.passport-stamp .stamp-history{border-top:1px solid #bb818c;margin-top:12px;padding-top:10px;font-size:.9rem}

/* Stack the brand and navigation on phones so the header cannot shrink into a narrow column. */
@media(max-width:700px){
 header{display:block;width:100%}
 header>nav{margin-top:12px}
 header h1{font-size:1.5rem;line-height:1.2;overflow-wrap:normal;word-break:normal}
 header p{margin:8px 0 0}
}

#directions-heading{scroll-margin-top:var(--passport-nav-clearance,130px)}

/* Compact navigation keeps enlarged phone content within reach. */
.nav-links{display:flex;flex-wrap:wrap;gap:inherit}.nav-toggle{display:none}
@media(max-width:400px){.pilot-nav{display:block;padding:4px 0}.nav-toggle{display:inline-flex;align-items:center;min-height:44px;padding:6px 12px}.pilot-nav .nav-links{display:none;gap:0 12px;padding-top:4px}.pilot-nav[data-expanded="true"] .nav-links{display:flex}.pilot-nav a{min-height:44px}}
/* Four self-contained pages, approved compact top navigation. */
.clear-app header{display:block;padding:15px 20px}.clear-container{max-width:800px;margin:0 auto;padding:0 20px}.clear-app main{padding:20px 0}.clear-app h1{font-size:1.8rem;margin:0 0 20px}.clear-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 0 0;background:var(--paper,#f5f1e9)}.clear-nav button{padding:8px 10px;min-height:40px;border:1px solid var(--red);color:var(--red);background:transparent;font-size:.875rem}.clear-nav button[aria-current="page"]{background:var(--red);color:white}.clear-app .clear-results{display:flex;align-items:center;justify-content:space-between;margin:16px 0}.clear-results p{margin:0}.clear-app .view-switch{margin:0}.clear-pub-list{max-height:none;overflow:visible}.clear-pub-list li{padding:16px 0}.clear-pub-list .secondary{border:1px solid var(--red);padding:8px 12px;text-decoration:none;min-height:42px}.clear-app .more-menu{display:grid;gap:0}.more-menu button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0}.more-menu span{font-size:.875rem;font-weight:normal;color:var(--ink);margin-top:4px}.back-more{margin-bottom:20px}.standalone-review{border:0!important;margin:0!important;padding:0!important}.standalone-review>summary,.standalone-review>p:first-of-type{display:none}.clear-app .passport-stamps{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:700px}.passport-stamp{display:flex;flex-direction:column;padding:18px 12px 14px;border-radius:12px;border:2px solid #934253;outline:1px solid #a25966;outline-offset:-7px;min-height:260px}.passport-stamp .stamp-caption{text-transform:uppercase;font-size:.65rem;letter-spacing:1px;font-weight:bold}.passport-stamp .stamp-centre{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:18px 0;min-height:150px}.passport-stamp h4{font-size:1.1rem;text-decoration:none;margin:0 0 8px}.passport-stamp .stamp-centre p{font-size:.9rem;margin:0}.passport-stamp time{font-family:'Courier New',monospace;text-transform:uppercase;border:1px solid #934253;padding:7px 3px;font-size:.9rem;white-space:normal}.passport-stamp .stamp-earned{text-transform:uppercase;font-size:.65rem;letter-spacing:1px;margin:10px 0 0}.passport-total strong{font-size:1.4rem;color:var(--red)}.preview-label{font-size:.8rem;margin:0 0 16px}.clear-app .search-filters{margin:8px 0}.clear-app .map-note{font-size:.8rem}.clear-app [tabindex="-1"]{scroll-margin-top:16px}@media(max-width:360px){.clear-app .passport-stamps{grid-template-columns:1fr}}@media(min-width:700px){.clear-nav{grid-template-columns:repeat(4,1fr)}}
.clear-app .standalone-review h3{margin-top:16px;font-size:1.1rem}.clear-app .standalone-review .review-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.clear-app .review-scores label{font-size:.8rem;min-width:0}.clear-app .review-scores input{text-align:center;min-height:44px}.clear-app .standalone-review .score-explanation{display:none}.clear-app .standalone-review .beer-notes{margin:10px 0;border:0}.clear-app .standalone-review .beer-notes summary{font-size:.875rem;padding:8px 0}.clear-app .standalone-review form>p:last-of-type{font-size:.875rem}.clear-app .standalone-review textarea{min-height:80px}@media(max-width:350px){.clear-app .standalone-review .review-scores{grid-template-columns:repeat(2,minmax(0,1fr))}}

.clear-app .more-menu button{background:transparent}.clear-app .passport-total~button{margin:12px 8px 0 0}.clear-app .detail{margin-top:0}.clear-app .standalone-review .filters{gap:10px}

.clear-nav{position:sticky;top:0;z-index:1200;padding-bottom:8px}.clear-app .detail[tabindex]{scroll-margin-top:calc(var(--clear-nav-height,100px) + 16px)}
/* Page headings receive focus for navigation, without looking like an input. */
.clear-app h1:focus{outline:none}
.clear-app .clear-results{flex-wrap:wrap;gap:12px 20px;align-items:center;margin:20px 0 8px}
.clear-app .clear-results>p{flex:1 1 auto;white-space:nowrap}
.clear-app .view-switch{flex:0 0 auto;display:inline-flex}
.clear-app .view-switch button{min-width:72px;min-height:44px;padding:7px 14px;font-size:.875rem;line-height:1.35}
@media(max-width:340px){.clear-app .clear-results{align-items:flex-start;flex-direction:column}}
.clear-app .review-saved{padding:8px 0 24px}.clear-app .review-saved h2{font-size:1.3rem;margin:0 0 12px}.clear-app .review-next-actions{display:flex;flex-direction:column;gap:14px;align-items:stretch;max-width:340px;margin-top:24px}.clear-app .review-next-actions button{width:100%;margin:0;min-height:48px}
/* A small ink seal sits inside the rectangular passport entry. */
.clear-app .passport-stamp .stamp-centre{min-height:110px;padding:16px 0}
.clear-app .passport-stamp .stamp-earned{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:78px;height:78px;flex:0 0 78px;margin:14px auto 2px;padding:8px;border:4px double currentColor;border-radius:50%;outline:1px dashed currentColor;outline-offset:-9px;transform:rotate(-9deg);font-family:'Courier New',monospace;font-size:10px;font-weight:bold;line-height:1.25;letter-spacing:.4px;opacity:.88;text-align:center}
.clear-app .passport-stamp .stamp-earned{width:84px;height:84px;flex-basis:84px}.clear-app .stamp-earned span{white-space:nowrap}
/* Named reviews keep scores and comments together; team average follows all reviews. */
.team-visit-list{list-style:none;padding:0}.team-visit{padding:20px 0 32px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.team-visit>h3{font-size:1.5rem;margin:8px 0}.team-visit h4{font-size:1.15rem;margin:0 0 12px}.team-attendance{padding:20px 0 8px;border-top:1px solid var(--line);margin-top:20px}.team-attendance ul{list-style:none;padding:0}.team-attendance li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:12px 0}.team-attendance li span:last-child{font-size:.9rem;text-align:right}.review-help{font-size:.9rem;color:#625d57}.named-reviews>li{padding:24px 0}.review-score-line{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.review-score-line strong{font-size:1.4rem;font-variant-numeric:tabular-nums;white-space:nowrap}.review-detail>summary,.scoring-explanation>summary,.review-attendance-detail>summary{color:var(--red)}.review-detail h5{font-size:1rem;margin:20px 0 8px}.team-average{border-top:3px solid var(--red);padding:20px 0 0;margin-top:12px}.team-average .review-score-line strong{font-size:1.8rem}.scoring-explanation dl{display:grid;grid-template-columns:1fr auto;gap:8px}.scoring-explanation dd{margin:0;font-variant-numeric:tabular-nums}.team-visit details{scroll-margin-top:var(--passport-nav-clearance,150px)}
/* Review actions remain distinct, including at enlarged phone text sizes. */
.review-form-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;margin:20px 0 16px}.review-form-actions>button{margin:0}
@media(max-width:600px){.review-form-actions{flex-direction:column;align-items:stretch}.review-form-actions>button{width:100%}}

/* Compact pub index; all dates, named reviews and averages stay inside each disclosure. */
.review-pub-list{list-style:none;padding:0;margin:16px 0}.review-pub-list>li{border-bottom:1px solid var(--line)}.review-pub-details{border:0;margin:0;padding:0}.review-pub-details>summary{padding:16px 4px;min-height:64px;color:var(--red)}.review-pub-name{font-size:1.1rem;font-weight:bold;color:var(--ink)}.review-pub-hint{display:block;font-size:.875rem;margin-left:20px}.review-pub-details>.team-visit-list{margin:0}.review-visit-date{font-size:1.1rem!important}.review-search-controls{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.review-search-controls input{flex:1;min-width:160px;margin-bottom:0}.review-search-controls button{margin:0}.review-pub-search label{margin-bottom:6px}


/* Team management and optional review photos; same phone-first visual system. */
.your-team form,.team-invitation form{max-width:42rem}.your-team details{border-top:1px solid #d7d0c5;margin-top:1rem}.your-team summary,.pub-photo-details summary,.passport-photo-list summary{min-height:48px;padding:12px 0;cursor:pointer}.team-members{list-style:none;padding:0}.team-members li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #d7d0c5}.team-members li button{margin:0}.pub-review-photo{display:block;width:100%;height:auto;max-height:38rem;object-fit:contain;border-radius:6px;margin:12px 0}.pub-photo-details figure{margin:0}.pub-photo-details{border-top:1px solid #d7d0c5;margin:16px 0}.pub-photo-editor input[type=file]{max-width:100%;padding:8px}.pub-photo-editor input[type=file]::file-selector-button{padding:10px 12px;border:1px solid #8c2030;border-radius:6px;background:#f5f1e9;color:#8c2030;max-width:100%;white-space:normal}.team-invitation{max-width:42rem;margin:auto;padding:20px}.team-invitation button{margin:8px 8px 8px 0}.passport-photo-list{font-size:1rem}.passport-photo-list .pub-review-photo{max-height:24rem}.your-team [role=group]{padding:12px 0}.your-team input[readonly]{font-size:16px}.pub-photo-details figcaption{overflow-wrap:anywhere}input[type=file]{min-width:0}

/* Keep stamp dimensions independent of its expandable photo list. */
.passport-stamps>li{display:flex;flex-direction:column;align-self:start}.passport-stamps .passport-stamp{height:auto;flex:0 0 auto}

/* Keep iOS standalone text inflation from enlarging the whole app; browser zoom remains available. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.clear-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
.clear-nav button{min-width:0;min-height:44px;white-space:normal;word-break:normal;overflow-wrap:normal;line-height:1.4}
@media(min-width:700px){.clear-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}
