:root{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:#15233b;background:#f7f9fb;font-size:16px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #4a91f2;outline-offset:2px}[hidden]{display:none!important}
.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 15%,#cce9ee,transparent 38%),linear-gradient(145deg,#f9fcff 22%,#dce8ef 100%)}.privacy-link{display:inline-block;margin-top:11px;color:#193b91;font-size:.83rem;font-weight:650}
.auth-card{width:min(100%,430px);padding:36px 34px 30px;background:white;border:1px solid #dbe5ec;border-radius:25px;box-shadow:0 22px 70px #16436a20}
.brand-mark{width:48px;height:48px;display:block;object-fit:cover;border-radius:14px}.brand-mark.small{width:39px;height:39px;border-radius:11px;flex:none}
.eyebrow{color:#667a8d;letter-spacing:.17em;font-size:.76rem;font-weight:750;margin:24px 0 5px}.auth-card h1{font-size:2.4rem;letter-spacing:-.04em;margin:0 0 12px;color:#08185e}.auth-intro{line-height:1.48;color:#4e6070;margin:0 0 26px}.auth-tabs{display:flex;background:#edf2f6;border-radius:12px;padding:4px;margin:0 0 23px}.auth-tab{border:0;background:transparent;color:#40546a;border-radius:9px;flex:1;padding:10px}.auth-tab.active{background:#fff;color:#0b1b6e;font-weight:700;box-shadow:0 1px 5px #193a6317}label{display:block;font-size:.88rem;font-weight:650;margin:17px 0 7px}input{width:100%;height:48px;border:1px solid #b9c8d4;border-radius:10px;padding:0 13px;background:white;color:#14253d}input:focus{border-color:#3568d4}.code-row{display:flex;gap:8px}.code-row input{min-width:0}.secondary-action{border:1px solid #b8c8d8;border-radius:10px;background:#fff;color:#0b1b6e;font-weight:650;padding:0 13px;white-space:nowrap}.primary-action{width:100%;border:0;border-radius:11px;background:#08136b;color:white;font-weight:700;height:49px;margin-top:24px}.primary-action:hover{background:#1729a1}.primary-action:disabled{opacity:.6;cursor:progress}.auth-message{min-height:1.4em;margin:13px 0 0;color:#9e292c;font-size:.9rem}.auth-help{border-top:1px solid #e1e8ee;margin:20px 0 0;padding-top:16px;color:#697888;font-size:.79rem;line-height:1.45}
.app-screen{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{min-height:82px;background:#fff;border-bottom:1px solid #dce4eb;display:flex;align-items:center;gap:26px;padding:13px 20px;z-index:10}.title-block{display:flex;align-items:center;gap:11px;min-width:160px}.top-brand{color:#68778e;font-size:.64rem;font-weight:800;letter-spacing:.18em}.title-block h1{font-size:1.33rem;letter-spacing:-.02em;margin:0;color:#091567}.activity-filters{display:flex;gap:9px;justify-content:center;flex:1}.activity{border:1px solid #ccd7e2;background:white;color:#213352;border-radius:999px;padding:9px 15px;min-height:40px;white-space:nowrap}.activity.active{background:#090e68;border-color:#090e68;color:white}.activity span{font-size:1.13em}.account-controls{display:flex;align-items:center;gap:9px;color:#607188;font-size:.82rem;white-space:nowrap}.account-controls button{background:#f5f8fa;border:1px solid #d9e3ed;border-radius:9px;padding:8px 11px;color:#182d51}
.map-layout{position:relative;flex:1;min-height:220px;overflow:hidden}#map{position:absolute;inset:0}.map-left{position:absolute;top:22px;left:20px;display:flex;flex-direction:column;gap:7px;z-index:3}.map-chip{border:1px solid #c6d6e3;border-radius:999px;padding:9px 16px;display:flex;align-items:center;gap:8px;background:#fffffff0;box-shadow:0 3px 14px #12355522;color:#183366;font-weight:700;min-height:44px}.map-chip.active{border-color:#628edf;background:#f0f6ff}.chip-icon{font-size:1.24rem;line-height:1}.map-tools{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;z-index:3;border-radius:18px;overflow:hidden;background:#ffffffed;box-shadow:0 3px 20px #16395730}.tool-button{width:48px;height:52px;border:0;border-bottom:1px solid #dae3ed;background:transparent;color:#1d3157;font-size:1.26rem;font-weight:650}.tool-button:last-child{border-bottom:0}.tool-button.active{color:#091477;background:#e9f0ff}.tool-button:hover{background:#e9f0f7}.map-key{position:absolute;bottom:17px;left:19px;background:#ffffffed;border-radius:999px;padding:9px 14px;box-shadow:0 2px 14px #12355521;display:flex;gap:15px;z-index:3;color:#52647b;font-size:.8rem}.map-key span{white-space:nowrap}.legend-dot{width:10px;height:10px;border-radius:100%;display:inline-block;margin-right:5px}.legend-dot.open{background:#2687ed}.legend-dot.closed{background:#f23946}.legend-dot.unknown{background:#f3b91b}.map-toast{position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:9;background:#111d4f;color:#fff;padding:9px 15px;border-radius:9px;box-shadow:0 4px 19px #10203840;font-size:.83rem}
.footer{background:#fff;border-top:1px solid #d5e0e9;padding:9px 22px 12px;z-index:4}.footer-top{display:flex;justify-content:space-between;gap:12px;color:#627189;font-size:.74rem;letter-spacing:.08em}.statistics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px;margin:12px 0}.statistics div{min-width:0}.statistics small{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;display:block;font-weight:750;color:#5e6d80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statistics strong{font-family:Georgia,serif;font-size:1.18rem;font-weight:500;color:#1d2b46;display:block;margin-top:2px;white-space:nowrap}.footer-actions{display:flex;justify-content:center;gap:12px;border-top:1px solid #e4e9ee;padding-top:10px}.footer-actions button{border:1px solid #d0dbe7;border-radius:10px;background:#fafcff;color:#0c1d69;display:flex;gap:8px;align-items:center;justify-content:center;min-height:41px;padding:7px 17px;font-size:.85rem;font-weight:650}.footer-actions button:first-letter{font-size:1.18rem}.footer-actions button:hover{background:#edf4ff}
.drawer{position:absolute;right:20px;top:95px;bottom:20px;width:min(410px,calc(100vw - 40px));background:#fff;z-index:12;border:1px solid #d9e3ec;border-radius:18px;box-shadow:0 22px 60px #10294a42;display:flex;flex-direction:column;overflow:hidden}.drawer-header{padding:20px 21px 14px;display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #e3eaf0}.drawer-header .eyebrow{margin:0 0 4px}.drawer-header h2{margin:0;font-size:1.26rem;color:#0a1b60;line-height:1.2}.drawer-header button{border:0;background:#f0f4f7;border-radius:50%;height:30px;width:30px;font-size:1.35rem;line-height:1;color:#42546b}.drawer-content{overflow:auto;padding:18px 20px 25px;flex:1}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.tag{background:#edf3fa;color:#254771;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:650}.tag.open{background:#e4f2ff;color:#1165ba}.tag.closed{background:#ffe9eb;color:#bd3742}.tag.unknown{background:#fff4d2;color:#806000}.drawer p{line-height:1.45;color:#4b5d70;font-size:.89rem}.drawer h3{font-size:.9rem;color:#243b59;margin:19px 0 8px}.drawer .list-button,.drawer .detail-button{width:100%;background:#f7f9fc;border:1px solid #dce5ee;border-radius:10px;text-align:left;padding:11px 12px;color:#15294a;margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer .list-button:hover,.drawer .detail-button:hover{background:#edf4fd}.list-button small{display:block;color:#617085;margin-top:3px}.drawer .detail-button.primary{background:#0b1d70;color:white;text-align:center;justify-content:center}.drawer .detail-button.primary:hover{background:#233a98}.drawer input[type=search]{margin-bottom:15px}.drawer select{width:100%;min-height:43px;border:1px solid #b9c8d4;border-radius:9px;background:#fff;padding:7px 10px}.drawer .edit-grid{display:grid;gap:12px}.drawer .edit-grid label{margin:0}.drawer .checkrow{display:flex;gap:10px;align-items:center;border:1px solid #dce6ee;border-radius:9px;padding:9px 11px}.drawer .checkrow input{height:auto;width:auto}.maplibregl-popup-content{font:inherit;border-radius:10px!important;padding:10px 13px!important}.access-marker{display:grid;place-items:center;background:white;color:#112575;border:2px solid #203d82;width:26px;height:26px;border-radius:50%;font-size:.75rem;font-weight:800;box-shadow:0 1px 6px #10204088;cursor:pointer}.access-marker.trailhead{background:#eef6ff}.access-marker.parking{background:#fff7e2;border-color:#ae7c0c;color:#775404}
.route-label{border:1px solid #c4d1da;background:#fffef6f2;color:#172335;box-shadow:0 2px 7px #0d223345;border-radius:6px;font-size:.81rem;font-weight:700;white-space:nowrap;padding:5px 8px;max-width:225px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.route-label:hover{background:#f2f8ff;border-color:#6792d5}
@media(max-width:1100px){.topbar{gap:12px;padding:10px 14px}.account-controls span{display:none}.activity{padding:8px 11px}.statistics{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 15px}.footer-actions{gap:6px}.footer-actions button{padding:6px 10px}}
@media(max-width:700px){.topbar{min-height:auto;display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px 11px}.title-block{min-width:0}.title-block h1{font-size:1.2rem}.account-controls{grid-column:2;grid-row:1}.account-controls #refresh{display:none}.account-controls #sign-out{font-size:.75rem;padding:6px 8px}.activity-filters{grid-column:1/3;grid-row:2;justify-content:space-between;gap:5px;overflow:auto}.activity{min-height:36px;padding:6px 11px;font-size:.78rem;flex:1}.activity span{display:none}.map-left{top:13px;left:10px}.map-chip{padding:6px 10px;min-height:36px;font-size:.82rem}.map-tools{top:12px;right:10px;border-radius:13px}.tool-button{height:43px;width:39px;font-size:1rem}.map-key{bottom:10px;left:9px;font-size:.68rem;gap:8px;padding:7px 8px}.footer{padding:7px 11px calc(7px + env(safe-area-inset-bottom))}.footer-top{font-size:.61rem;letter-spacing:0}.statistics{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 9px;margin:8px 0}.statistics small{font-size:.55rem;letter-spacing:0}.statistics strong{font-size:1rem;margin:0}.footer-actions{padding-top:7px}.footer-actions button{min-height:36px;flex:1;padding:5px 4px;font-size:.73rem;gap:3px}.footer-actions span{display:none}.footer-actions button:first-letter{font-size:1.18rem}.drawer{top:auto;right:0;left:0;bottom:0;width:100%;height:min(73dvh,650px);border-radius:18px 18px 0 0}.drawer-header{padding:15px 16px 11px}.drawer-content{padding:14px 16px 24px}.desktop-only{display:none}}
@media(max-width:700px){.statistics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:9px 0}.statistics small{font-size:.65rem;letter-spacing:0;white-space:normal;line-height:1.16}.statistics strong{font-size:1rem;margin-top:2px}.map-key{bottom:32px}}
@media(max-width:375px){.activity{font-size:.7rem;padding:6px 4px}}
.icon{width:20px;height:20px;display:inline-block;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.activity{display:inline-flex;align-items:center;justify-content:center;gap:7px}.activity .icon{width:19px;height:19px}
.account-controls #refresh{display:inline-flex;align-items:center;gap:6px}.account-controls #refresh .icon{width:17px;height:17px}
.map-chip .icon{width:19px;height:19px}.tool-button{display:grid;place-items:center}.tool-button .icon{width:23px;height:23px}.tool-button.active .icon{stroke-width:2}
#flyover-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0}
#flyover-toggle .icon{width:17px;height:17px}
#flyover-toggle span{font-size:8px;font-weight:600;line-height:1}
.footer-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.footer-actions button{min-width:0;padding:7px 6px;white-space:nowrap}.footer-actions button .icon{width:20px;height:20px}.footer-actions button:first-letter{font-size:inherit}
.access-marker{padding:0;appearance:none;line-height:0;width:24px;height:24px;border:1px solid #fff;color:#fff;box-shadow:0 1px 6px #10204088}
.access-marker.trailhead{background:#63381f;color:#fff}
.access-marker.parking{background:#1f4d96;border-color:#fff;color:#fff}
.access-marker .icon{width:16px;height:16px}
.access-marker.trailhead .icon{transform:translateX(-1px)}
.app-screen.map-fullscreen .topbar,.app-screen.map-fullscreen .footer{display:none}.app-screen.map-fullscreen .map-layout{height:100dvh;flex:1}
@media(max-width:1100px){.footer-actions{gap:5px}.footer-actions button{font-size:.72rem;gap:4px}.footer-actions button .icon{width:18px;height:18px}}
@media(max-width:700px){.activity{gap:3px}.activity .icon{width:16px;height:16px}.tool-button .icon{width:20px;height:20px}.footer-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.footer-actions button{min-height:37px;padding:5px 1px}.footer-actions button .icon{width:21px;height:21px}.footer-actions span{display:none}}
.activity{min-height:36px;padding:7px 12px;font-size:.84rem}.activity .icon{width:17px;height:17px}
.map-chip{padding:7px 13px;min-height:40px;font-size:.82rem}.map-chip .icon{width:17px;height:17px}
.map-tools{top:8px;right:12px;border-radius:16px}.tool-button{width:44px;height:44px;font-size:.82rem}.tool-button .icon{width:20px;height:20px}
.footer-actions button{min-height:38px;padding:5px;font-size:.78rem;gap:5px}.footer-actions button .icon{width:18px;height:18px}
@media(max-width:700px){.activity{min-height:34px;padding:5px 7px;font-size:.74rem}.activity .icon{width:15px;height:15px}.map-chip{min-height:36px;padding:5px 9px}.map-tools{top:8px;right:10px;border-radius:14px}.tool-button{width:44px;height:44px}.tool-button .icon{width:19px;height:19px}.footer-actions button{min-height:36px;padding:5px 1px}.footer-actions button .icon{width:19px;height:19px}}
.footer-actions button{border:0;background:transparent;border-radius:7px}
.footer-actions button:focus-visible{outline:2px solid #0c1d69;outline-offset:2px}
.map-style-menu{position:absolute;top:140px;right:64px;z-index:4;min-width:126px;padding:5px;background:#fffffff5;border:1px solid #d4dfeb;border-radius:12px;box-shadow:0 7px 22px #17345b33;display:grid;gap:3px}
.map-style-menu button{border:0;border-radius:8px;background:transparent;color:#203454;text-align:left;padding:9px 11px;font-size:.86rem;font-weight:650}
.map-style-menu button:hover,.map-style-menu button.active{background:#e8f0ff;color:#091477}

/* Keep the map controls close to the compact proportions of Map RPV on Mac. */
.topbar{min-height:60px;padding:8px 14px;gap:14px}
.title-block{gap:8px}
.activity-filters{gap:6px}
.activity{min-height:28px;padding:4px 9px;font-size:.72rem;gap:4px}
.activity .icon{width:13px;height:13px}
.account-controls{gap:6px;font-size:.72rem}
.account-controls button{padding:5px 8px;border-radius:7px;font-size:.72rem}
.account-controls #refresh .icon{width:14px;height:14px}
.map-left{top:12px;left:12px;gap:5px}
.map-chip{min-height:29px;padding:4px 10px;gap:5px;font-size:.72rem}
.map-chip .icon{width:14px;height:14px}
.map-tools{top:8px;right:12px;border-radius:12px}
.tool-button{width:33px;height:33px;font-size:.69rem}
.tool-button .icon{width:16px;height:16px}
#flyover-toggle .icon{width:14px;height:14px}
#flyover-toggle span{font-size:6px}
.map-style-menu{top:107px;right:53px;min-width:112px;padding:4px;border-radius:9px}
.map-style-menu button{padding:6px 8px;font-size:.75rem;border-radius:6px}
.footer-actions{padding-top:7px}
.footer-actions button{min-height:29px;padding:3px;font-size:.71rem;gap:4px}
.footer-actions button .icon{width:14px;height:14px}
.drawer-header button{width:27px;height:27px;font-size:1.15rem}
.drawer .list-button,.drawer .detail-button{padding:8px 10px;font-size:.81rem;border-radius:8px}
@media(max-width:700px){
  .topbar{padding:7px 10px;gap:6px}
  .activity{min-height:30px;padding:4px 6px;font-size:.72rem}
  .activity .icon{width:14px;height:14px}
  .map-left{top:9px;left:9px}
  .map-chip{min-height:32px;padding:4px 8px;font-size:.75rem}
  .map-tools{top:8px;right:9px;border-radius:12px}
  .tool-button{width:36px;height:36px;font-size:.72rem}
  .tool-button .icon{width:17px;height:17px}
  .map-style-menu{top:116px;right:52px}
  .footer-actions button{min-height:34px;font-size:.68rem}
  .footer-actions button .icon{width:16px;height:16px}
}
