.map-session-toggle{position:absolute;left:1rem;top:5rem;z-index:35;padding:.6rem 1rem;border:1px solid #334155;border-radius:.5rem;background:#101b24;color:#e2e8f0;cursor:pointer}
.map-session-toggle [data-session-badge]{color:#52e3c2;margin-left:.4rem}
.map-session-panel{position:absolute;left:1rem;top:8.2rem;bottom:1rem;width:310px;max-width:calc(100% - 2rem);z-index:34;overflow:auto;padding:1rem;border:1px solid #334155;border-radius:.8rem;background:rgba(12,22,30,.97);color:#e2e8f0;box-shadow:0 14px 40px #0006;transition:transform .22s ease,visibility .22s;touch-action:pan-y}
.map-session-panel.is-closed{transform:translateX(calc(-100% - 2rem));visibility:hidden;pointer-events:none}
.map-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}
.map-session-header h2{font-size:1.1rem;font-weight:700;margin:0}
.map-session-header button{border:0;background:transparent;color:#cbd5e1;font-size:1.6rem;cursor:pointer}
.map-session-panel h3{font-weight:700;font-size:1rem;margin:.7rem 0 .4rem}
.map-session-panel p{font-size:.88rem;line-height:1.5;margin:.4rem 0;color:#afbfce}
.map-session-panel .map-session-feedback{color:#79e2cc}
.map-session-card{padding:.8rem;margin:.6rem 0;border:1px solid #334155;border-radius:.6rem;background:#15232e}
.map-session-card strong{display:block;font-size:.92rem;overflow-wrap:anywhere}
.map-session-panel button:not([data-session-close]):not(.session-story-button),.map-session-panel .map-session-link{display:inline-block;border:1px solid #42566a;background:#203341;color:#e2e8f0;border-radius:.45rem;padding:.5rem .65rem;margin:.35rem .35rem .1rem 0;font-size:.85rem;cursor:pointer;text-decoration:none}
.map-session-panel button.map-session-primary{background:#74e4cc;color:#09251f;border-color:#74e4cc;font-weight:700}
.map-session-panel button:disabled{opacity:.5;cursor:wait}
.map-session-panel label{display:block;font-size:.85rem;margin:.6rem 0}
.map-session-panel input,.map-session-panel select{display:block;width:100%;min-width:0;margin-top:.3rem;padding:.55rem;border:1px solid #42566a;border-radius:.4rem;background:#0c161e;color:#e2e8f0;font-size:.9rem}
.map-session-member{padding:.45rem 0;border-bottom:1px solid #263846;font-size:.88rem;overflow-wrap:anywhere}
.map-session-event{font-size:.82rem;padding:.5rem 0;border-bottom:1px solid #263846}
.map-session-trust{border-top:1px solid #334155;margin-top:1rem;padding-top:.6rem}
.map-session-position-layer{position:absolute;inset:0;pointer-events:none}
.map-session-marker{position:absolute;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:#8de7ca;border:2px solid #062d22;box-shadow:0 0 0 2px #fff8}
.map-session-marker.is-rally{background:#ffca77;border-radius:2px}
.map-session-marker span{position:absolute;left:15px;top:-7px;color:#fff;background:#10232de6;border-radius:3px;padding:2px 5px;font-size:11px;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.map-session-panel{transition:none}}
/* Desktop map: retain the existing tools on the right alongside the session drawer. */
#gateway-map-app .gateway-map-side{position:absolute;top:1rem;right:1rem;bottom:1rem;margin:0;width:320px;max-height:none}
.map-session-panel{bottom:auto;max-height:calc(min(54rem, 100vh - 5rem) - 9.2rem)}

.map-session-position-actions{border-top:1px solid #334155;padding-top:.75rem}
.map-session-position-actions[hidden]{display:none}
.map-session-position-actions p{font-size:.85rem;color:#cbd5e1;margin:0 0 .6rem}
.map-session-position-actions small{display:block;color:#79e2cc;margin-top:.5rem}
.map-session-position-actions button{border:1px solid #42566a;border-radius:.45rem;background:#203341;color:#e2e8f0;font-size:.8rem;cursor:pointer}
.map-session-position-actions button.map-session-primary{background:#74e4cc;color:#09251f;border-color:#74e4cc;font-weight:700}
.map-session-position-actions button:disabled{opacity:.5;cursor:wait}
.map-session-panel .map-session-trust{border:1px solid #345349;border-radius:.6rem;background:#102921;padding:.75rem;margin:.75rem 0}
.map-session-trust strong{font-size:.9rem}

.map-session-footer{margin-top:1rem;padding-top:.6rem;border-top:1px solid #263846}
.map-session-panel button.map-session-leave{background:transparent;border-color:transparent;color:#afbfce;font-size:.75rem;padding:.25rem .35rem;margin:0}
.map-session-panel button.map-session-leave:hover{color:#e2e8f0;text-decoration:underline}
.map-session-panel button.map-session-leave:focus-visible{outline:2px solid #74e4cc;outline-offset:2px}

.map-session-panel .session-story-actions > div{grid-template-columns:repeat(2,minmax(0,1fr))}
.map-session-panel .session-story-button{cursor:pointer}

.map-session-match{margin:.8rem 0;padding:.75rem 0;border-top:1px solid #263846;overflow-wrap:anywhere}
.map-session-match>strong{font-size:.9rem}
.map-session-match-row{display:flex;align-items:center;gap:.65rem;margin-top:.35rem}
.map-session-match-avatars{display:flex;flex-shrink:0;padding-left:5px}
.map-session-match-avatar{position:relative;display:grid;place-items:center;overflow:hidden;width:28px;height:28px;margin-left:-5px;border:2px solid #0c161e;border-radius:50%;background:#203341;color:#afbfce;font-size:.75rem}
.map-session-match-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map-session-match.is-compact{padding:.5rem 0;margin:.5rem 0}
.map-session-match.is-compact p{font-size:.78rem}
.map-session-panel .map-session-match button{max-width:100%;white-space:normal;text-align:left}
.map-session-match-profile{color:inherit;text-decoration:underline;text-decoration-color:#42566a;text-underline-offset:2px}
.map-session-match-profile:hover{color:#79e2cc;text-decoration-color:currentColor}
.map-session-match-profile:focus-visible{outline:2px solid #74e4cc;outline-offset:2px;border-radius:2px}
