/* A quiet map and a welcoming, consistent set of actions. */
:root{--purple:#7653a1;--leaf:#377762;--card:#fffcf8;--warm:#fff1dc}body{font-family:'DM Sans',system-ui,sans-serif}button,a{touch-action:manipulation}.route-link{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;text-decoration:none;min-height:50px;margin:10px 0}.route-link.primary{color:#fff}.route-link.secondary{color:var(--purple)}.primary:disabled{opacity:.5}.top-pills{top:112px}.top-pills #modeLabel{max-width:340px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.map-options-button{position:fixed;z-index:3;right:24px;top:116px;min-height:48px;border:1px solid #fff;background:#fffcf8f5;border-radius:16px;padding:10px 18px;font-weight:700;box-shadow:0 5px 25px #45344e1a}.map-options-panel{position:fixed;z-index:5;right:24px;top:174px;width:300px;max-height:calc(100dvh - 210px);overflow:auto;background:#fffcf8fb;border:1px solid #fff;border-radius:24px;padding:18px;box-shadow:0 14px 60px #352b4330;backdrop-filter:blur(16px)}.map-options-panel h2{margin:0}.map-options-panel>p{margin:17px 0 7px;font-weight:600}.map-options-panel>.fineprint{font-weight:400;font-size:12px}.map-options-panel .view-tabs,.map-options-panel .surface-tabs{position:static;box-shadow:none;border:0;background:#f1e9f8;display:flex;gap:3px;padding:4px;border-radius:14px}.map-options-panel nav button{flex:1;min-height:44px;padding:9px 7px;font-size:12px}.perspective-tools{display:flex;gap:6px;margin-top:16px}.perspective-tools button{flex:1;background:#fff;border:1px solid #e0d5ea;border-radius:12px;min-height:44px;font-size:12px;padding:7px}.map-tools{top:190px;display:flex;right:24px}.map-tools button{width:44px;height:46px}.map-tools #locate{margin-top:5px;background:#f0e5fc;color:var(--purple)}#selection,#alertBanner{top:174px}.outing-card{position:relative;border:1px solid #dce7dd;border-radius:23px;padding:20px;background:linear-gradient(135deg,#eaf3e9,#fff8e8);margin-bottom:20px;overflow:hidden}.outing-art{font-size:37px;letter-spacing:8px;margin:0 0 12px;line-height:1.5}.outing-art span{display:inline-block;transform:rotate(-8deg)}.outing-card h2{font:800 25px Manrope,system-ui,sans-serif;letter-spacing:-.7px;margin:8px 0}.outing-card p{font-size:13px;color:#566858;margin:9px 0 17px}.outing-card .eyebrow{color:var(--leaf);font-size:10px}.outing-card .primary{background:var(--leaf);box-shadow:0 4px 12px #37776222}.outing-card #outingEnd{width:100%;margin-top:8px;font-size:13px}.action-grid{gap:9px}.action-tile{min-height:110px;border-radius:18px}.action-tile svg{width:43px;height:43px}.action-tile strong{font-size:15px}.action-tile small{font-size:12px}.member{border-radius:15px;padding:13px 8px;margin:2px -5px}.member:hover{background:#f0e9f8}.member>span:nth-child(2){flex:1;min-width:0}.member strong{overflow-wrap:anywhere}.outing-member-badge{color:var(--leaf)!important;margin-top:5px;font-weight:600}.member .status{font-size:20px}.location-settings{margin-top:18px}.location-settings .geo-consent{margin:10px 0;padding:10px}.location-settings>summary span{margin:6px 0 0}.rendezvous{padding:18px;border-radius:21px}.rendezvous h3{font:800 21px Manrope,system-ui,sans-serif;overflow-wrap:anywhere}.rendezvous #chooseMeeting{margin-top:8px}.flag-marker{background:#fff2d7;border:2px solid #fff;box-shadow:0 4px 20px #3b2c3530;font-size:15px;font-weight:800;padding:12px 16px;border-radius:17px;max-width:240px;white-space:normal;overflow-wrap:anywhere}.person-dialog{text-align:center;max-width:440px}.person-dialog h2{padding:0;margin:16px 0 12px;overflow-wrap:anywhere;font-size:29px}.person-portrait{display:grid;place-items:center;width:108px;height:108px;border:6px solid #fff;box-shadow:0 6px 26px #7653a125;border-radius:34px;margin:22px auto 12px;font-size:66px;overflow:hidden}.person-portrait img{width:100%;height:100%;object-fit:cover}.quality-pill{display:inline-block;padding:8px 13px;border-radius:25px;font-weight:700;font-size:12px;background:#edf5ef;color:#337258}.quality-pill[data-quality=uncertain],.quality-pill[data-quality=old]{background:#fff0d8;color:#8a601f}.quality-pill[data-quality=private],.quality-pill[data-quality=waiting]{background:#ede8f2;color:#706579}.person-dialog #personUpdated{font-weight:600;margin:18px 0 8px}.person-dialog .fineprint{font-size:12px}.person-dialog #personFind{margin-top:18px}.person-dialog #personWave{font-size:12px}.outing-meeting{background:#fff4df;border-radius:18px;padding:16px;margin:18px 0}.outing-meeting p{margin:8px 0}.outing-meeting button{min-height:44px}.outing-consent{display:flex;align-items:flex-start;gap:12px;text-align:left;margin:20px 0;font-weight:600;font-size:14px;line-height:1.5}.outing-consent input{width:24px;height:24px;flex-shrink:0;accent-color:var(--leaf)}.outing-consent small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.person-marker.wave-once .arms:after{animation:ensemble-wave .45s ease-in-out 4}.person-marker.wave-once .head{animation:ensemble-nod .8s ease-in-out 2}.person-marker.wave-once .torso{animation:none!important}@keyframes ensemble-wave{0%,100%{transform:rotate(-115deg)}50%{transform:rotate(-155deg)}}@keyframes ensemble-nod{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(5deg)}}
@media(max-width:700px){header{height:84px}.top-pills{top:91px;left:12px;right:100px;max-width:none;font-size:10px;gap:5px}.top-pills #modeLabel{max-width:calc(100vw - 160px);padding:10px}.top-pills #helpButton{padding:7px 10px}.top-pills #install{position:fixed;right:12px;top:145px;font-size:11px;min-height:40px;padding:8px}.map-options-button{right:12px;top:91px;min-height:42px;padding:8px 12px;font-size:12px}.map-options-panel{right:12px;top:143px;width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 240px)}.map-tools{right:12px;top:200px;display:flex;padding:4px;gap:1px;border-radius:17px}.map-tools button{width:39px;height:43px}.outing-card{padding:18px}.outing-card h2{font-size:24px}.outing-art{font-size:32px;margin-bottom:8px}.outing-card p{font-size:13px}.outing-card .primary{font-size:15px}.sheet:not(.collapsed){max-height:61dvh}.sheet:not(.collapsed) #sheetBody{max-height:calc(61dvh - 88px)}.action-tile{min-height:104px;padding:10px}.action-tile svg{width:37px;height:37px}.action-tile strong{font-size:14px}.action-tile small{font-size:11px}.person-dialog .person-portrait{width:110px;height:110px}#selection,#alertBanner{top:145px;right:65px;left:12px}.flag-marker{max-width:180px;font-size:13px;padding:10px 13px}.person-dialog{width:calc(100vw - 24px)}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{max-width:calc(100vw - 28px)}.maplibregl-ctrl-attrib{font-size:10px}}
@media(max-height:600px) and (max-width:700px){.top-pills{top:72px}.map-options-button{top:72px}.map-options-panel{top:122px;max-height:calc(100dvh - 160px)}.map-tools{top:173px}.sheet:not(.collapsed){max-height:calc(100dvh - 110px)}.sheet:not(.collapsed) #sheetBody{max-height:calc(100dvh - 200px)}.person-portrait{width:75px;height:75px;margin:8px auto;font-size:44px}.person-dialog h2{font-size:23px;margin:10px 0}.person-dialog p{margin:7px 0}.outing-art{font-size:26px;margin:0}.outing-card h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.person-marker.wave-once .arms:after,.person-marker.wave-once .head{animation:none}}

/* Direct access to group codes and personal location sharing. */
.receive-code-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:78px;margin:14px 0 20px;padding:16px;background:#eee4fa;border:2px solid #b79bd4;border-radius:18px;color:#513174;font-size:20px;font-weight:800;text-align:left}.receive-code-button>span:first-child{font-size:30px}.receive-code-button>span:nth-child(2){flex:1}.receive-code-button small{display:block;font-size:13px;font-weight:500;line-height:1.5;margin-top:5px}.receive-code-title{font-size:22px;margin:8px 0}#joinCode{min-height:60px;font-size:18px;border:2px solid #b79bd4}#joinForm button{min-height:54px;font-size:17px}/* Compact GPS switch in the shared information row. */
.top-pills{right:24px;max-width:none;display:flex;align-items:center;gap:8px}.top-pills #modeLabel{flex:1;min-width:0;max-width:none}.top-pills .map-options-button{position:static;flex-shrink:0;margin:0}.map-sharing{position:static;display:flex;flex-shrink:0;align-items:center;gap:6px;width:auto;padding:0;background:transparent;border:0;box-shadow:none}.map-sharing strong{font-size:12px}.map-sharing small{display:none}.map-sharing #share{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:76px;width:76px;min-height:40px;height:40px;padding:5px 9px 5px 5px;border:0;border-radius:24px;background:#b72e40;color:white;font-size:14px;font-weight:800}.map-sharing #share[aria-checked=true]{background:#237446;flex-direction:row-reverse;padding:5px 5px 5px 9px}.map-sharing #share .toggle-knob{position:static;transform:none;width:28px;height:28px;flex-shrink:0;background:white;border-radius:50%}.map-sharing #share:disabled{opacity:.65;cursor:wait}.map-sharing #share:focus-visible,.receive-code-button:focus-visible{outline:3px solid #513174;outline-offset:3px}.map-tools{top:190px}
@media(max-width:700px){.top-pills{left:12px;right:12px;top:91px;gap:5px}.top-pills #modeLabel{padding:10px 8px;font-size:10px}.top-pills #helpButton{min-width:34px;padding:5px 8px}.top-pills .map-options-button{min-height:40px;padding:8px;font-size:11px}.map-sharing{gap:4px}.map-sharing strong{font-size:10px}.map-sharing #share{width:70px;min-width:70px;font-size:13px}.top-pills #install{top:145px;right:12px}.map-tools{top:200px}.receive-code-button{font-size:19px}}
@media(max-height:600px) and (max-width:700px){.top-pills{top:72px}.top-pills #install{top:124px}.map-tools{top:173px}}

/* Visible perimeter control and direct map access. */
.featured-limit{border:2px solid #b999d2;border-radius:22px;padding:18px;margin:20px 0;background:linear-gradient(135deg,#f5edff,#fff8ed);scroll-margin-top:14px;box-shadow:0 5px 18px #70509014}.featured-limit:focus{outline:3px solid #9b70bf;outline-offset:3px}.limit-intro{display:flex;gap:13px;align-items:center;margin-bottom:15px}.limit-intro>svg{width:62px;height:62px;flex:none}.limit-intro h2{font-size:23px;margin:0 0 5px;color:#573570}.limit-intro p{margin:0;font-size:13px}.featured-limit>.section-head{background:#fff9;border-radius:13px;padding:11px}.featured-limit .radius-options button{min-height:48px;font-size:15px}.featured-limit #zoneStatus{font-weight:750;color:#644080}.featured-limit .zone-links{display:flex;flex-wrap:wrap;gap:6px}.featured-limit .zone-links button{min-height:44px}.top-pills .map-limit-button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 10px;border:2px solid #ae8dc9;background:#f4eaff;color:#573570;font-size:12px;font-weight:800;white-space:nowrap;border-radius:14px}.map-limit-button svg{width:25px;height:25px;flex:none}.top-pills .map-limit-button.limit-active{background:#fff0d5;border-color:#d6a455;color:#805316}.map-limit-button[hidden]{display:none!important}@media(max-width:700px){.top-pills .map-limit-button{min-height:36px;font-size:11px;padding:4px 8px}.map-limit-button svg{width:23px;height:23px}.featured-limit{padding:15px}.limit-intro h2{font-size:21px}.limit-intro>svg{width:55px;height:55px}}
