/* Quiet edge marker; an opaque, readable panel only when requested. */
.hub .place-guide{position:fixed;left:4px;top:45%;z-index:65;display:flex;align-items:center;padding-right:8px;color:var(--hub-text)}
/* No invisible hit-area over the reading. Near-edge detection is passive. */
@media(hover:hover) and (pointer:fine){
  .hub .place-guide{opacity:0;pointer-events:none;transition:opacity .14s ease}
  .hub .place-guide.is-revealed{opacity:1;pointer-events:auto}
}
.hub .place-toggle{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--hub-accent);padding:7px;cursor:pointer}
.hub .place-toggle svg{width:30px;height:30px;fill:var(--hub-surface);stroke:currentColor;stroke-width:1.3;filter:drop-shadow(0 2px 4px #00000012)}
.hub .place-toggle:hover svg,.hub .place-toggle[aria-expanded=true] svg{fill:var(--hub-bg)}
.hub .place-panel{position:absolute;left:44px;top:50%;transform:translateY(-50%);width:min(292px,calc(100vw - 64px));max-height:calc(90dvh - 64px);overflow:auto;padding:20px;border:1px solid var(--hub-line);border-radius:20px;background:var(--hub-surface);box-shadow:0 12px 36px #00000020,inset 0 1px 0 var(--glass-shine);animation:place-arrive .16s ease-out}
.hub .place-panel[hidden],.hub .place-reading[hidden]{display:none}
.hub .place-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--hub-muted);font:600 11px/1.5 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.hub .place-close{width:44px;height:44px;margin:-12px -10px -8px 0;border:0;background:transparent;color:var(--hub-text);font-size:22px;cursor:pointer}
.hub .place-path{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px;font-size:14px;line-height:1.55}
.hub .place-path li+li{padding-left:14px;border-left:1px solid var(--hub-line)}
.hub .place-path a{display:inline-block;padding:6px 0;min-height:32px;color:var(--hub-muted);text-underline-offset:4px}
.hub .place-path [aria-current]{font-weight:600;color:var(--hub-text)}
.hub .place-reading{padding-top:14px;border-top:1px solid var(--hub-line)}
.hub .place-reading>span{font:600 10px/1.5 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--hub-muted)}
.hub .place-reading p{font-size:14px;line-height:1.6;margin:7px 0 14px}
.hub .place-library{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;font-size:12px;color:var(--hub-accent);text-underline-offset:4px}
.hub .place-guide button:focus-visible,.hub .place-guide a:focus-visible{outline:2px solid var(--hub-accent);outline-offset:3px;border-radius:8px}
@keyframes place-arrive{from{opacity:0;translate:-4px 0}to{opacity:1;translate:0 0}}
@media(max-width:800px){.hub .place-guide{left:2px;top:auto;bottom:72px}.hub .place-panel{top:auto;bottom:0;transform:none;max-height:calc(100dvh - 100px)}}
@media(prefers-reduced-motion:reduce){.hub .place-panel{animation:none}.hub .place-guide{transition:none}}
@media print{.hub .place-guide{display:none}}
