/* A travel control below the map; details remain in an optional dialog. */
#world-teleport:empty{display:none}
#world-play-panel .teleport-map-control{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:8px;padding:7px 8px;font-size:13px;line-height:1.25;white-space:normal}
.teleport-map-control .icon{width:18px;height:18px;flex-shrink:0}
.teleport-map-control small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--muted)}
.teleport-map-control.is-active{border-color:#a8cb8280;color:var(--lime)}
.protocol-utility>.button{width:100%;min-height:44px;margin-top:12px}
.protocol-utility .protocol-potency{padding:12px 0}
.protocol-utility>.muted{font-size:12px;line-height:1.6}
#modal .modal-panel:has(.teleport-dialog){width:min(740px,calc(100vw - 24px));max-width:740px}
.teleport-dialog{min-width:0;font-size:14px;line-height:1.65}
.teleport-dialog h2{padding-right:28px;font-size:32px;line-height:1.2;overflow-wrap:anywhere}
.teleport-dialog h3{display:flex;align-items:center;gap:10px;margin:22px 0 12px;font-size:19px;line-height:1.35}
.teleport-dialog h3>span,.teleport-locked-list>summary>span{font:600 12px var(--font);border:1px solid var(--line);border-radius:20px;padding:3px 8px;color:var(--muted)}
.teleport-dialog p{overflow-wrap:anywhere}
.teleport-dialog .button{min-height:44px;max-width:100%;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.teleport-dialog .button:focus-visible,.teleport-dialog summary:focus-visible,.teleport-map-control:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.teleport-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0;padding:16px;border:1px solid #78947980;border-radius:8px;background:#193b2d70}
.teleport-status>div{flex:1 1 200px;min-width:0}
.teleport-status strong{display:block;color:var(--lime);font-size:14px}
.teleport-status span{display:block;color:var(--muted);font-size:12px}
.teleport-status p,.teleport-status small{flex-basis:100%;margin:0;font-size:12px;line-height:1.6;color:var(--muted)}
.teleport-status>.button{flex:0 1 auto}
.teleport-search{display:block;margin-top:20px;font-weight:600}
.teleport-search input{display:block;box-sizing:border-box;width:100%;min-height:44px;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#11241e;color:#e1edbf;font:400 16px var(--font)}
.teleport-search input::placeholder{color:var(--muted)}
.teleport-search input:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.teleport-area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.teleport-area{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#11241e}
.teleport-area.unlocked{border-color:#8fad715e}
.teleport-area-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 10px}
.teleport-area h4{margin:0;font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.teleport-area-heading>span{font-size:11px;color:var(--muted)}
.teleport-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.teleport-progress>div{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:#183129}
.teleport-progress dt{font-size:11px;line-height:1.5;color:var(--muted)}
.teleport-progress dd{margin:3px 0 0;font-size:17px;line-height:1.25;font-weight:600}
.teleport-progress dd>span{font-size:12px;font-weight:400;color:var(--muted)}
.teleport-progress .complete dd{color:var(--lime)}
.teleport-area>.button{width:100%;margin-top:auto}
.teleport-reasons{margin:0 0 8px;color:var(--muted);font-size:12px;line-height:1.65}
.teleport-missing{margin-bottom:12px}
.teleport-dialog summary{box-sizing:border-box;min-height:44px;padding:12px 0;cursor:pointer;color:var(--lime);font-size:13px;line-height:20px;overflow-wrap:anywhere}
.teleport-missing ul{list-style:none;margin:0;padding:3px 0 10px}
.teleport-missing li{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-bottom:1px solid var(--line)}
.teleport-missing li>span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.teleport-missing li>strong{font-size:12px;font-weight:400;overflow-wrap:anywhere}
.teleport-locked-list{margin-top:18px;border-top:1px solid var(--line)}
.teleport-locked-list>summary{font-size:16px;padding:16px 0;line-height:1.4}
.teleport-locked-list>summary>span{margin-left:8px}
.teleport-rules{margin:20px 0 0;border-top:1px solid var(--line)}
.teleport-rules p{margin:7px 0 12px;font-size:12px;line-height:1.7;color:var(--muted)}
.teleport-empty{padding:14px 0;color:var(--muted);font-size:13px}
.teleport-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:20px}
.teleport-actions>.button{flex:1 1 180px}
.teleport-error{padding:12px;border:1px solid #c79c555e;border-radius:6px;background:#88683220;color:#edce90}
.teleport-confirm .teleport-progress{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:560px){
 .teleport-dialog h2{font-size:27px}
 .teleport-area-grid{grid-template-columns:minmax(0,1fr)}
 .teleport-status{padding:12px}
 .teleport-status>.button{width:100%}
 .teleport-area{padding:13px}
 .teleport-confirm .teleport-progress{grid-template-columns:repeat(2,minmax(0,1fr))}
 .teleport-actions>.button{flex-basis:100%}
}
