.trail-page{width:100%;max-width:var(--pw1);padding:0 20px 60px;display:flex;flex-direction:column;gap:24px}
.trail-hero{display:flex;flex-direction:column;gap:8px}
.trail-hero-name{font-size:2rem;font-weight:800;color:#111;line-height:1.2;margin:0;word-break:break-word}
.trail-hero-meta{display:flex;align-items:center;gap:10px;color:#999;font-size:1rem;font-weight:600;flex-wrap:wrap}
.trail-hero-state{text-transform:uppercase;letter-spacing:.5px;color:#22955b;text-decoration:none;cursor:pointer;transition:opacity .15s}
.trail-hero-state:hover{text-decoration:underline;text-underline-offset:4px}
.trail-hero-type{padding:2px 10px;background:rgba(34,149,91,.1);color:#22955b;border-radius:100px;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.trail-hero-meta .status-badge{cursor:pointer;border:none;font-family:inherit;flex-shrink:0;font-size:1rem;padding:13px 24px;transition:opacity 80ms}
.trail-hero-meta .status-badge:hover{opacity:.8}
.trail-hero-meta .status-proof-wrap{margin-left:auto}
.status-proof-wrap{position:relative;flex-shrink:0}
.status-proof[hidden]{display:none}
.status-proof{position:absolute;top:calc(100% + 8px);right:0;min-width:440px;max-width:520px;background:#fff;border-radius:8px;box-shadow:0 4px 4px rgba(0,0,0,.15);padding:14px 16px;display:flex;flex-direction:column;gap:10px;z-index:1100}
.spf-row{display:flex;justify-content:space-between;gap:12px;font-size:1rem}
.spf-key{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#999}
.spf-val{font-weight:600;color:#111;text-align:right}
.spf-val a{color:#22955b;text-decoration:none}
.spf-val a:hover{text-decoration:underline}
.spf-quote{display:flex;flex-direction:column;gap:6px}
.spf-quote blockquote{margin:0;padding:10px 12px;background:#fffbe6;border-left:3px solid #eab308;border-radius:0 6px 6px 0;font-size:1rem;color:#5a4a08;line-height:1.55}
.spf-empty{font-size:1rem;color:#888;font-style:italic}
.trail-map{width:100%;height:380px;border-radius:var(--br1);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.18);background:#eee}
.trail-page-marker{background:#999;border:2.5px solid #fff;border-radius:100px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.trail-page-marker.open{background:#22c55e}
.trail-page-marker.closed{background:#ef4444}
.trail-page-marker.partial{background:#eab308}
.trail-page-marker.unknown{background:#999}
.trail-page-marker.fat_bikes{background:#3b82f6}
.trail-page-marker.paved{background:#6366f1}
.trail-page-parking{background:#111;color:#fff;border:2px solid #fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.trail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fact{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:#f7f7f7;border-radius:10px;min-width:0}
.fact-label{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#999}
.fact-value{font-size:1rem;font-weight:600;color:#111;word-break:break-word}
.fact-value a{color:#22955b;text-decoration:none}
.fact-value a:hover{text-decoration:underline}
.trail-note-block{padding:16px 18px;background:#fffbe6;border-left:3px solid #eab308;border-radius:0 8px 8px 0}
.trail-note-block h3{font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#a16207;margin:0 0 6px 0}
.trail-note-block p{font-size:1rem;color:#5a4a08;line-height:1.55;margin:0}
.trail-actions{display:flex;flex-wrap:wrap;gap:10px}
.trail-actions a.trail-link-btn{padding:10px 18px;border-radius:100px;font-size:1rem;font-weight:700;text-decoration:none;color:#fff;background:#22955b;transition:opacity .15s;border:none;display:inline-block}
.trail-actions a.trail-link-btn:hover{opacity:.85}
.trail-actions a.trail-link-btn.tb{background:#3b82f6}
.trail-actions a.trail-link-btn.st{background:#ef4444}
.trail-actions a.trail-link-btn.mp{background:#a855f7}
.trail-actions a.trail-link-btn.web{background:#111}
.trail-nearby h3{font-size:1.15rem;font-weight:800;margin:0 0 12px 0;color:#111}
.nearby-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.nearby-item{margin:0}
.nearby-link{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f7f7f7;border-radius:10px;text-decoration:none;color:#111;transition:background .15s}
.nearby-link:hover{background:#eee}
.nearby-link .status-dot{width:9px;height:9px;border-radius:100px;flex-shrink:0}
.nearby-link .status-dot.open{background:#22c55e}
.nearby-link .status-dot.closed{background:#ef4444}
.nearby-link .status-dot.partial{background:#eab308}
.nearby-link .status-dot.unknown{background:#999}
.nearby-link .status-dot.fat_bikes{background:#3b82f6}
.nearby-link .status-dot.paved{background:#6366f1}
.nearby-name{flex:1;font-weight:600;font-size:1rem;min-width:0;word-break:break-word}
.nearby-state{color:#999;font-size:1rem;font-weight:600;text-transform:uppercase}
.nearby-dist{color:#999;font-size:1rem;font-weight:600;white-space:nowrap}
.trail-404{text-align:center;padding:60px 20px;display:flex;flex-direction:column;gap:12px;align-items:center}
.trail-404 h2{font-size:1.5rem;font-weight:800;margin:0}
.trail-404 code{background:#f0f0f0;padding:2px 8px;border-radius:4px;font-size:1rem}
.trail-similar{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.trail-similar a{color:#22955b;text-decoration:none;font-weight:600}
.trail-similar a:hover{text-decoration:underline}
.btn-link{display:inline-block;padding:10px 20px;background:#22955b;color:#fff;border-radius:100px;text-decoration:none;font-weight:700;margin-top:12px}
@media(max-width:600px){
.trail-page{padding:0 16px 40px;gap:18px}
.trail-hero-name{font-size:1.5rem}
.trail-map{height:280px}
.trail-hero-meta .status-badge{font-size:1rem;padding:10px 18px}
.status-proof{min-width:0;width:calc(100vw - 32px);max-width:calc(100vw - 32px);right:auto;left:0}
.trail-actions a.trail-link-btn{padding:9px 16px;font-size:1rem}
}
@media(max-width:380px){
.trail-page{padding:0 10px 30px;gap:14px}
.trail-hero-name{font-size:1.3rem}
.trail-map{height:240px}
.trail-facts{grid-template-columns:1fr;gap:8px}
.fact{padding:10px 12px}
.fact-value{font-size:1rem}
.trail-hero-meta .status-badge{font-size:1rem;padding:9px 16px}
.status-proof{width:calc(100vw - 20px);max-width:calc(100vw - 20px)}
.trail-actions a.trail-link-btn{padding:8px 14px;font-size:1rem}
.trail-note-block{padding:12px 14px}
.trail-note-block p{font-size:1rem}
.nearby-link{padding:8px 12px;gap:8px}
.nearby-name{font-size:1rem}
}
.trail-user-marker{display:flex;align-items:center;justify-content:center;pointer-events:none}
.trail-user-marker .user-pin{width:18px;height:18px;border-radius:50%;background:#111;border:3px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.5);position:relative}
.trail-user-marker .user-pin::after{content:"";position:absolute;top:-5px;left:-5px;right:-5px;bottom:-5px;border-radius:50%;border:2px solid rgba(17,17,17,.4);animation:trail-user-pulse 1.6s ease-out infinite}
@keyframes trail-user-pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.4);opacity:0}}
.fact-value:has(.coord-link){display:inline-flex;align-items:center;gap:8px}
.coord-link{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#444!important;text-decoration:none!important;transition:background-color .15s ease}
.coord-link:hover{background:#ececec;text-decoration:none!important;color:#444!important}
.coord-link svg{display:block;opacity:.85}
