/* One theme contract for all book and collection maps. */
.field-route-atlas,.fra-embed-section{--fra-bg:var(--bg-canvas);--fra-ink:var(--text-primary);--fra-green:var(--accent-brand);--fra-rule:var(--border-hairline);--fra-muted:var(--text-secondary);background:var(--fra-bg);color:var(--fra-ink)}
.field-route-atlas{display:block;position:relative;width:100%;overflow:hidden;border:0}
.field-route-atlas .fra-svg{display:block;width:100%;height:auto;min-height:280px;background:var(--fra-bg);font-family:Inter,"Helvetica Neue",Arial,sans-serif}
.fra-bg{fill:var(--fra-bg)}
.fra-map-background,.fra-inline-map-fragment,.fra-xinjiang{pointer-events:none;opacity:1}
.fra-inline-map-fragment .province{fill:none;fill-opacity:0;stroke:var(--fra-rule);stroke-opacity:.8;stroke-width:.8;vector-effect:non-scaling-stroke}
.fra-inline-map-fragment [id="province-xinjiang"],.fra-xinjiang{fill:color-mix(in srgb,var(--fra-ink) 6%,var(--fra-bg));fill-opacity:1;stroke:var(--fra-rule);stroke-opacity:1;stroke-width:1.2;vector-effect:non-scaling-stroke}
.fra-admin-outline{fill:none;stroke:var(--fra-rule);stroke-width:1;vector-effect:non-scaling-stroke}
.fra-path{fill:none;stroke:var(--fra-muted);stroke-width:1;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.fra-path.fra-road-weak,.fra-path.fra-flight,.fra-path.fra-cross-border{stroke-dasharray:4 4}
.fra-path.fra-train{stroke-dasharray:2 2}
.fra-path.fra-ferry{stroke-dasharray:1 3}
.fra-path.fra-core,.fra-path.fra-xj-core{stroke:var(--fra-green);stroke-width:2.5;stroke-dasharray:none;opacity:1}
.fra-node{fill:var(--fra-bg);stroke:var(--fra-green);stroke-width:1.5;shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke}
.fra-node.fra-noncore{stroke-width:1.1}
.fra-timeline{fill:var(--fra-ink);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.fra-label{fill:var(--fra-ink);font-size:10px;font-weight:500;letter-spacing:.01em;font-family:Inter,"Helvetica Neue",Arial,sans-serif;pointer-events:none}
.fra-place{opacity:1;transition:opacity .22s cubic-bezier(.16,1,.3,1)}
.fra-place-pending{opacity:0}
.fra-place.fra-noncore .fra-label{font-size:9px;font-weight:400}
.fra-fade-away{opacity:.35;transition:opacity 1.5s cubic-bezier(.16,1,.3,1)}
.fra-zooming .fra-core{opacity:1}
.fra-embed-section{border-bottom:1px solid var(--fra-rule)}
.fra-embed-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--fra-rule);padding-bottom:1rem;margin-bottom:1rem}
.fra-embed-kicker{font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--fra-green)}
.fra-embed-title{margin:.45rem 0 0;font-size:clamp(1.15rem,2vw,1.65rem);font-weight:400;letter-spacing:-.02em}
.fra-embed-meta{font:9px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--fra-muted);text-align:right}
.fra-embed-controls{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.fra-route-tab{appearance:none;border:1px solid var(--fra-rule);border-radius:0;background:transparent;color:var(--fra-ink);padding:.42rem .6rem;font:9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.fra-route-tab:is(:hover,:focus-visible,.is-active){background:var(--fra-green);border-color:var(--fra-green);color:var(--on-accent)}
.fra-embed-frame{border:1px solid var(--fra-rule);background:var(--fra-bg);overflow:hidden}
.fra-embed-section .field-route-atlas .fra-svg{min-height:300px;height:min(58vw,560px)}
.fra-embed-note{margin-top:.75rem;font:9px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--fra-muted);text-transform:uppercase}
@media(max-width:700px){.fra-embed-head{display:block}.fra-embed-meta{text-align:left;margin-top:.6rem}.fra-embed-section .field-route-atlas .fra-svg{height:62vw;min-height:280px}}
@media(prefers-reduced-motion:reduce){.fra-place,.fra-fade-away,.fra-route-tab{transition:none}}
