/* Route v2 S17 Tools tray: slide-up list, no tiles (Travis Oct 28 2026). */
.rt-tray { position: fixed; inset: 0; z-index: var(--rt-z-tray); }
.rt-tray-scrim { position: absolute; inset: 0; background: rgb(0 0 0 / .45); opacity: 0; transition: opacity var(--rt-fade); }
.rt-tray.on .rt-tray-scrim { opacity: 1; }
.rt-tray-sheet { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--rt-pad) var(--rt-pad) calc(var(--rt-pad) + env(safe-area-inset-bottom, 0px)); background: var(--card, var(--bg)); border-radius: var(--rt-radius) var(--rt-radius) 0 0; transform: translateY(100%); transition: transform var(--rt-slide) var(--rt-ease); max-height: 70vh; overflow: auto; }
.rt-tray.on .rt-tray-sheet { transform: none; }
.rt-tray-grip { display: block; width: 36px; height: 4px; margin: 0 auto var(--rt-gap); border-radius: var(--rt-radius-sm); background: var(--muted, currentColor); opacity: .5; }
.rt-tray-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.rt-tray-item { display: flex; align-items: center; gap: var(--rt-gap); width: 100%; min-height: var(--rt-row-h); padding: 0 var(--rt-pad); border: 0; border-radius: var(--rt-radius-sm); background: none; color: inherit; font: inherit; text-align: left; }
.rt-tray-item:active, .rt-tray-item:focus-visible { background: color-mix(in srgb, var(--rt-accent) 18%, transparent); }
.rt-tray-item .ico { color: var(--rt-accent); }
.rt-tray-view { position: fixed; inset: 0 0 calc(56px + env(safe-area-inset-bottom, 0px)); z-index: var(--rt-z-sheet); background: var(--bg); transform: rotateY(90deg); transition: transform var(--rt-flip) var(--rt-ease); }
.rt-tray-view.on { transform: none; }
.rt-tray-view iframe { width: 100%; height: 100%; border: 0; }
.rt-tray-back { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 8px); left: 8px; z-index: 1; }
.rt-tray-hint { position: fixed; left: 50%; bottom: calc(64px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: var(--rt-z-toast); margin: 0; padding: 4px 10px; border-radius: var(--rt-radius); font-size: var(--fs-note); background: var(--card, var(--bg)); opacity: .9; display: flex; align-items: center; gap: 6px; width: max-content; max-width: calc(100vw - 24px); box-sizing: border-box; }
.rt-tray-dot { width: 8px; height: 8px; border-radius: var(--rt-radius); background: var(--rt-accent); animation: rt-tray-pulse 1.2s ease-in-out infinite; }
@keyframes rt-tray-pulse { 50% { transform: scale(1.6); opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .rt-tray-dot { animation: none; } }
