/* Guide routes layer (same palette as badges.css: dark #06081A/#0D1230, cyan = open, magenta = you/locked, chrome). */
.hdr-right { position:absolute; top:96px; right:10px; z-index:5; display:flex; gap:8px; align-items:center; }
.hdr-right .pins { position:static; }
.routesBtn { display:flex; align-items:center; gap:6px; background:rgba(6,8,26,.82); backdrop-filter:blur(10px); border:1px solid var(--line); border-radius:14px; padding:6px 11px 6px 8px; color:var(--ink); font-family:var(--cond); font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; box-shadow:0 2px 14px rgba(0,0,0,.4); cursor:pointer; }
.routesBtn svg { width:20px; height:20px; color:var(--accent); display:block; }

/* sheets reuse .sheet/.grip/.close/.body from index.html */
#rsheet { z-index:12; } #gsheet { z-index:13; }
.rback { border:0; background:transparent; color:var(--accent); font-family:var(--cond); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 0; margin:2px 0 0; cursor:pointer; }
.rcard { display:flex; gap:12px; background:var(--chip); border:1px solid var(--line); border-radius:14px; padding:10px; margin:10px 0; }
.rcover { flex:0 0 84px; height:84px; border-radius:10px; background:var(--card) center/cover no-repeat; border:1px solid var(--line); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rcover.ph { background:linear-gradient(135deg, #1E2650, #0D1230 60%, rgba(34,230,255,.25)); }
.rcover.ph span { font-family:var(--cond); font-size:34px; font-weight:700; color:var(--accent); text-transform:uppercase; opacity:.8; }
.rinfo { flex:1; min-width:0; display:flex; flex-direction:column; }
.rinfo b { font-family:var(--cond); font-size:16px; letter-spacing:.02em; line-height:1.15; display:block; }
.rmeta { font-size:12px; color:var(--muted); margin-top:3px; line-height:1.4; }
.rbar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:6px; }
.rbar .btn { margin-top:0; padding:6px 12px; }
.rprice { display:inline-block; font-family:var(--cond); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--chrome); background:#2A3160; padding:2px 8px; border-radius:6px; white-space:nowrap; }
.rprice.free { color:var(--accent); background:rgba(34,230,255,.12); }
.rprice.own { color:#06081A; background:var(--accent); }
.rhero { height:150px; border-radius:14px; background:var(--chip) center/cover no-repeat; border:1px solid var(--line); margin:8px 0 6px; }
.ract { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:4px 0 8px; }
.ract .btn { margin-top:0; }
.rprog { font-family:var(--cond); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); }
.rstops { list-style:none; padding:0; margin:8px 0 0; }
.rstops li { padding:10px 0; border-top:1px solid var(--line); }
.rsh { display:flex; align-items:center; gap:10px; }
.rsh .num, .esh .num { flex:none; width:24px; height:24px; border-radius:12px; background:var(--accent); color:#06081A; font-family:var(--cond); font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; }
.rstops li.locked .num { background:var(--line); color:var(--muted); }
.rstops li.done .num { background:var(--accent2); color:#06081A; }
.rsh b { font-family:var(--cond); font-size:15px; letter-spacing:.02em; flex:1; }
.rstops li.locked .rsh b { color:var(--muted); }
.rsh .lock { font-size:14px; opacity:.8; }
.rst { margin:8px 0 0 34px; }
.rst p { font-size:15px; line-height:1.5; margin:0 0 8px; }
.rstops .pstrip { margin-left:34px; }

/* walk mode panel */
.walk { position:absolute; left:0; right:0; bottom:0; z-index:9; background:var(--card); border-top:1px solid var(--accent); border-radius:20px 20px 0 0; padding:8px 16px calc(12px + var(--bot, var(--safe-b))); box-shadow:0 -10px 40px rgba(0,0,0,.5), 0 0 24px rgba(34,230,255,.15); transform:translateY(105%); transition:transform .28s cubic-bezier(.2,.8,.2,1); max-height:76vh; display:flex; flex-direction:column; }
.walk:not(.open) { visibility:hidden; pointer-events:none; }
.walk.drag { transition:none; }
.walk.half { max-height:46vh; }
.walk.peek { max-height:none; }
.walk.peek .wb, .walk.peek .wp { display:none; }
.walk.peek .wt { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.walk .grip { width:44px; height:5px; border-radius:3px; background:var(--line); margin:0 auto 8px; flex:0 0 auto; }
.walk.open { transform:translateY(0); }
.wh { display:flex; justify-content:space-between; align-items:center; }
.wk { font-family:var(--cond); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.wx { width:30px; height:30px; border-radius:15px; border:0; background:var(--line); color:var(--ink); font-size:16px; }
.wt { font-family:var(--cond); font-size:20px; letter-spacing:.02em; line-height:1.1; margin:4px 0 6px; display:block; }
.wb { overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.wb p { font-size:14px; line-height:1.5; margin:0 0 8px; }
.wnav { display:flex; gap:8px; margin-top:8px; }
.wnav .btn { margin-top:0; flex:0 0 auto; }
.wnav .btn.solid { flex:1; text-align:center; }
.wnav .btn:disabled { opacity:.45; }
.wp { height:3px; background:var(--line); border-radius:2px; margin-top:10px; overflow:hidden; }
.wp i { display:block; height:100%; background:linear-gradient(90deg, var(--accent), var(--accent2)); }

/* finish overlay reuses .found from badges.css */
.rfinish .pin { width:min(50vw, 200px); }

/* pick-a-building bar while the editor waits for a tap */
.pickbar { position:absolute; left:10px; right:10px; bottom:calc(34px + var(--safe-b)); z-index:9; display:none; align-items:center; justify-content:space-between; gap:10px; background:rgba(13,18,48,.95); border:1px solid var(--accent2); border-radius:14px; padding:10px 12px; font-size:13px; color:var(--ink); box-shadow:0 0 18px rgba(255,47,160,.3); }
.pickbar.on { display:flex; }
.pickbar .btn { margin-top:0; padding:6px 10px; flex:none; }

/* collection screen additions + guide dashboard/editor */
.rcoll { margin-top:4px; }
.rcoll .rcard { margin:8px 0; }
.gline { margin:12px 0 4px; }
.glink { border:0; background:transparent; color:var(--accent2); font-family:var(--cond); font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 0; cursor:pointer; }
.groutes li .btn { margin:8px 6px 0 0; padding:6px 10px; }
.gsales { list-style:none; padding:0; margin:0 0 12px; }
.gsales li { display:flex; justify-content:space-between; gap:8px; padding:8px 0; border-top:1px solid var(--line); font-size:13px; }
.gsales li span:first-child { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gsales .sub { color:var(--muted); font-size:11px; }
.why { color:var(--accent2); font-size:13px; margin:6px 0; line-height:1.4; }
.form.ed textarea { min-height:90px; }
.form.ed select { flex:1; min-width:0; }
.estops { list-style:none; padding:0; margin:0; }
.estops li { background:var(--chip); border:1px solid var(--line); border-radius:12px; padding:10px; margin:8px 0; display:flex; flex-direction:column; gap:8px; }
.esh { display:flex; align-items:center; gap:8px; }
.esh b { font-family:var(--cond); font-size:14px; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ebtns { display:flex; gap:4px; }
.ebtns button { width:30px; height:30px; border-radius:8px; border:1px solid var(--line); background:var(--card); color:var(--ink); font-size:14px; padding:0; }
.ebtns button:disabled { opacity:.35; }
.estops .photos .ph, .estops .photos label, #eCover .ph, #eCover label { width:56px; height:56px; }
.estops textarea { min-height:100px; }
.rtoast { top:140px; z-index:20; max-width:calc(100vw - 20px); white-space:normal; text-align:center; }
@media (min-width: 700px) { .rcover { flex-basis:110px; height:110px; } }
