@font-face{font-family:Fraunces;src:url(/fonts/fraunces-variable.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-variable.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap}:root{--wb-primary:#3d4a31;--wb-primary-ink:#f4f1e6;--wb-accent:#b8863b;--wb-bg:#efe4c9;--wb-surface:#fffaf0;--wb-text:#2b2314;--wb-text-muted:#6b5f45;--wb-danger:#7c3b2c;--wb-line:#8a7452;--wb-radius:10px;--wb-font:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--wb-font-display:"Fraunces", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--wb-font);background:var(--wb-bg);color:var(--wb-text);margin:0}.app-shell{background:var(--wb-bg);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.app-header{background:var(--wb-primary);color:var(--wb-primary-ink);flex-direction:column;gap:4px;padding:16px;display:flex}.app-header__name{font-family:var(--wb-font-display);letter-spacing:.01em;font-size:1.15rem;font-weight:600}.sync-pill{background:#ffffff26;border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:.75rem}.sync-pill--offline{background:var(--wb-danger)}.app-content{flex:1;padding:16px 16px 96px}.app-content--centered{text-align:center;flex-direction:column;justify-content:center;gap:8px;display:flex}.bottom-nav{background:var(--wb-surface);border-top:1px solid #00000014;max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__link{text-align:center;color:var(--wb-text-muted);flex:1;padding:12px 4px;font-size:.8rem;text-decoration:none}.bottom-nav__link--active{color:var(--wb-accent);font-weight:600}.page__title{font-family:var(--wb-font-display);text-wrap:balance;margin:0 0 8px;font-size:1.65rem;font-weight:600}.page__lede{color:var(--wb-text-muted);margin:0 0 16px}.card{background:var(--wb-surface);border-radius:var(--wb-radius);margin-bottom:12px;padding:16px;box-shadow:0 1px 3px #00000014}.card__title{font-family:var(--wb-font-display);margin:0 0 8px;font-size:1.15rem;font-weight:600}.section-title{font-family:var(--wb-font-display);margin:20px 0 8px;font-size:1.1rem;font-weight:600}.gate-times{gap:24px;display:flex}.gate-times__label{text-transform:uppercase;letter-spacing:.06em;color:var(--wb-text-muted);font-size:.75rem;display:block}.gate-times__value{font-family:var(--wb-font-display);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}.quick-links{flex-direction:column;gap:8px;margin-top:16px;display:flex}.quick-link{background:var(--wb-surface);border-radius:var(--wb-radius);color:var(--wb-text);align-items:center;gap:10px;padding:14px 16px;font-size:.92rem;font-weight:600;text-decoration:none;display:flex;box-shadow:0 1px 3px #00000014}.quick-link svg{color:var(--wb-accent);flex:none}.map-viewer{--map-scale:1;border-radius:var(--wb-radius);border:1.5px solid var(--wb-line);touch-action:none;background:#efe4c9;height:min(62vh,560px);margin-bottom:6px;position:relative;overflow:hidden}.map-viewer__wrapper{width:100%!important;height:100%!important}.map-viewer__content{width:100%!important}.map-canvas{width:100%;position:relative}.map-canvas__image{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.map-viewer__fit{font:inherit;border:1.5px solid var(--wb-line);background:var(--wb-surface);color:var(--wb-text);cursor:pointer;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:600;position:absolute;bottom:8px;right:8px;box-shadow:0 1px 3px #00000026}.map-caption{color:var(--wb-text-muted);margin:0 0 16px;font-size:.72rem;font-style:italic}.map-marker{width:0;height:0;transform:scale(calc(1 / var(--map-scale)));transform-origin:0 0;position:absolute}.map-pin{border:1.5px solid var(--wb-accent);background:var(--wb-surface);transform-origin:bottom;cursor:pointer;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-100%)rotate(-45deg);box-shadow:0 2px 4px #2b23144d}.map-pin__icon{color:var(--wb-accent);display:flex;transform:rotate(45deg)}.map-pin__number{font:700 .7rem/1 var(--wb-font);font-variant-numeric:tabular-nums}.map-pin--room,.map-pin--campsite,.map-pin--hiking_point,.map-pin--waterfall,.map-pin--picnic,.map-pin--entrance{border-color:#fffaf0}.map-pin--room{background:#3d4a31}.map-pin--campsite{background:#b8863b}.map-pin--hiking_point{background:#6b3f6e}.map-pin--waterfall{background:#4f7a88}.map-pin--picnic{background:#a8592e}.map-pin--entrance{background:#8a3324}.map-pin--room .map-pin__icon,.map-pin--campsite .map-pin__icon,.map-pin--hiking_point .map-pin__icon,.map-pin--waterfall .map-pin__icon,.map-pin--picnic .map-pin__icon,.map-pin--entrance .map-pin__icon{color:#fffaf0}.map-pin--active{background:var(--wb-accent);outline:3px solid var(--wb-surface);box-shadow:0 0 0 5px var(--wb-text), 0 2px 6px #0006;z-index:2}.map-pin--active .map-pin__icon{color:var(--wb-surface)}.map-filters{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.map-filter{font:inherit;border:1.5px solid var(--wb-line);background:var(--wb-surface);color:var(--wb-text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.78rem;display:inline-flex}.map-filter[aria-pressed=false]{opacity:.45}.map-filter__dot{background:var(--wb-accent);border-radius:50%;width:10px;height:10px}.map-filter--room .map-filter__dot{background:#3d4a31}.map-filter--campsite .map-filter__dot{background:#b8863b}.map-filter--hiking_point .map-filter__dot{background:#6b3f6e}.map-filter--waterfall .map-filter__dot{background:#4f7a88}.map-filter--picnic .map-filter__dot{background:#a8592e}.map-filter--entrance .map-filter__dot{background:#8a3324}.map-detail{scroll-margin-top:16px;scroll-margin-bottom:96px}.map-detail__kind{text-transform:uppercase;letter-spacing:.08em;color:var(--wb-text-muted);font-size:.72rem}.map-detail__subtitle{font-family:var(--wb-font-display);color:var(--wb-text-muted);margin-top:-4px;font-style:italic}.gate-note{margin:0}.gate-note+.gate-times{margin-top:12px}.trail-list{margin:0;padding:0;list-style:none}.trail-item{background:var(--wb-surface);border-radius:var(--wb-radius);margin-bottom:8px;padding:12px 14px}.trail-item__row{justify-content:space-between;align-items:center;display:flex}.trail-item__name{font-weight:600}.trail-badge{background:var(--wb-bg);text-transform:capitalize;border-radius:999px;padding:2px 8px;font-size:.7rem}.trail-item__meta{color:var(--wb-text-muted);margin-top:4px;font-size:.8rem}.trail-item__notes{margin:6px 0 0;font-size:.85rem}.contact-card__header{color:var(--wb-text-muted);justify-content:space-between;margin-bottom:4px;font-size:.75rem;display:flex}.contact-card--emergency{border:1px solid var(--wb-danger)}.contact-card__actions{gap:8px;margin-top:8px;display:flex}.btn{border-radius:var(--wb-radius);cursor:pointer;border:none;justify-content:center;align-items:center;padding:10px 16px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--wb-accent);color:var(--wb-text)}.btn--secondary{background:var(--wb-bg);color:var(--wb-text)}.btn--block{width:100%;display:flex}.pending-note,.status-note{border-radius:var(--wb-radius);margin-bottom:12px;padding:8px 12px;font-size:.85rem}.pending-note{color:#8a5a00;background:#fff4e0}.status-note--success{color:#22703a;background:#e3f3e6}.status-note--queued{color:#8a5a00;background:#fff4e0}.feedback-form{flex-direction:column;gap:16px;display:flex}.feedback-field label{margin-bottom:6px;font-weight:500;display:block}.feedback-field textarea{border-radius:var(--wb-radius);resize:vertical;border:1px solid #00000026;width:100%;padding:10px;font-family:inherit}.privacy-notice{border-radius:var(--wb-radius);background:var(--wb-surface);border:1px solid #0000001f;padding:12px;font-size:.85rem}.privacy-notice h2{margin:0 0 6px;font-size:.95rem}.privacy-notice p{color:var(--wb-text-muted);margin:0 0 8px}.consent-check{align-items:flex-start;gap:8px;font-weight:500;display:flex}.consent-check input{accent-color:var(--wb-primary);margin-top:3px}.rating-input{gap:6px;display:flex}.rating-star{color:#0003;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.8rem}.rating-star--filled{color:var(--wb-accent)}
