/* Weltlaufkarte: an observed replay, separate from the atlas's static inspector. */
.wr-shell {background:#fffdf8;border:1px solid #9fc4ca;border-radius:12px;overflow:hidden;color:var(--ink);display:flex;flex-direction:column;min-width:0}
.wr-shell button,.wr-shell select,.wr-shell input {font-family:var(--font-ui);font-size:.9375rem}
.wr-shell button,.wr-shell select,.wr-shell input[type=number] {min-height:44px;background:#fffdf8;color:#16525d;border:1px solid #9fc4ca;border-radius:10px;padding:8px 12px}
.wr-shell button {cursor:pointer;font-weight:650}
.wr-shell button:hover:not(:disabled){background:#183f48;color:#fffdf8}
.wr-shell button:disabled{opacity:.45;cursor:default}
.wr-shell :focus-visible{outline:3px solid #216b78;outline-offset:2px}
.wr-toolbar,.wr-time,.wr-map-controls{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 16px;border-bottom:1px solid #9fc4ca}
.wr-toolbar{background:#fffdf8}
.wr-toolbar>label{display:grid;gap:4px;min-width:150px;flex:1;font-size:.75rem;font-weight:650}
.wr-toolbar select{width:100%;min-width:0;max-width:100%}
.wr-toolbar #wrRun{max-width:360px}
.wr-title{margin-right:auto;order:-2}
.wr-toolbar>#shellViewLabel{order:-1}
.wr-title h1{font:700 clamp(1.5rem,2.3vw,2rem)/1.25 var(--font-editorial);color:#183f48;margin:0}
.wr-title span{font-size:.8125rem;color:var(--ink-soft)}
.wr-time{background:#dcecee;align-items:center}
.wr-time label{font-size:.75rem;font-weight:650}
.wr-range{flex:1;min-width:100px;display:grid;gap:2px}
.wr-range input{width:100%;min-height:24px;accent-color:#216b78}
.wr-time input[type=number]{width:85px;margin-left:5px}
.wr-check{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem!important;min-height:32px;font-weight:500!important}
.wr-check input{accent-color:#216b78;width:16px;height:16px;flex:none}
#wrCheckpoint{font-size:.8125rem;color:#183f48;min-width:165px}
.wr-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:0;flex:1}
.wr-map-pane{display:flex;flex-direction:column;min-width:0;min-height:0}
.wr-map-controls{padding:8px 12px;align-items:center;background:#faf7f0;gap:6px}
.wr-map-controls button{min-height:36px;padding:4px 10px}
.wr-map-controls output{min-width:48px;text-align:center;font-size:.8125rem;font-variant-numeric:tabular-nums}
.wr-viewport{overflow:auto;min-height:220px;flex:1;position:relative;background:#f1ede3;overscroll-behavior:contain;cursor:grab;touch-action:pan-x pan-y;scrollbar-gutter:stable}
.wr-viewport:active{cursor:grabbing}
#wrSvg{display:block;max-width:none;flex:none;user-select:none}
#wrSvg text{font-family:var(--font-ui);fill:#183f48;pointer-events:none}
.wr-zone{fill:#fffdf8;fill-opacity:.72;stroke:#9fc4ca;stroke-width:1.5}
#wrSvg .wr-zone-name{font-family:var(--font-editorial);font-weight:700}
.wr-edge{fill:none;stroke:#46757c;stroke-width:2;opacity:.5}
.wr-special{stroke:#9a7841;stroke-dasharray:7 4}
.wr-vertical{stroke:#5b7475;stroke-dasharray:12 5;opacity:.28}
.wr-edge-focus{stroke:#16525d;stroke-width:3;opacity:1}
.wr-sight{fill:none;stroke:#755079;stroke-width:2;stroke-dasharray:2 8;opacity:.65;stroke-linecap:round}
.wr-sight-link{cursor:pointer}
.wr-sight-focus,.wr-sight-link:hover .wr-sight,.wr-sight-link:focus-visible .wr-sight{stroke-width:3.5;opacity:1}
#wrSvg .wr-sight-label{font-size:14px;font-weight:700;fill:#69426d;paint-order:stroke;stroke:#fffdf8;stroke-width:5px;stroke-linejoin:round}
.wr-sight-panel{border-left:3px dotted #755079;padding-left:12px;margin:18px 0}
.wr-sight-panel ul{list-style:none;padding:0}.wr-sight-panel li{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:12px 0}.wr-sight-panel li small{flex-basis:100%;font-size:.8125rem;color:#3c4b54}
.wr-edge-label{font-size:12px;paint-order:stroke;stroke:#fffdf8;stroke-width:4px;stroke-linejoin:round}
.wr-room,.wr-actor,.wr-count{cursor:pointer}
.wr-dock{fill:#fffdf8;stroke:#9fc4ca;stroke-width:1}
/* A dock is a fixed presentation seat for a room, not a route in the game.
   Use long, sparse red dashes so these links do not compete with map exits. */
.wr-dock-link{fill:none;stroke:#8f2028;stroke-width:3;stroke-dasharray:6 6;stroke-linecap:round;opacity:.9;pointer-events:none}
.wr-more{cursor:pointer}
.wr-more rect{fill:#dcecee;stroke:#216b78;stroke-width:1}
#wrSvg .wr-more text{font-size:14px;font-weight:750;fill:#183f48}
.wr-more:hover rect,.wr-more:focus-visible rect{stroke-width:3}
.wr-more.expanded rect{fill:#183f48;stroke:#fffdf8;stroke-width:2}
#wrSvg .wr-more.expanded text{fill:#fffdf8}
.wr-dock-expanded{transform-box:fill-box;transform-origin:top left}
.wr-dock-expanded.opening{animation:wr-dock-unfold .18s ease-out}
.wr-dock-expanded .wr-dock-sheet{stroke:#216b78;stroke-width:2;filter:drop-shadow(0 8px 8px #183f4833)}
@keyframes wr-dock-unfold{from{opacity:.35;transform:translateY(-10px) scaleY(.82)}to{opacity:1;transform:translateY(0) scaleY(1)}}
.wr-room-box{fill:#fffdf8;stroke:#216b78;stroke-width:2}
.wr-room.selected .wr-room-box{fill:#dcecee;stroke-width:5}
.wr-room-id{font-weight:750}
.wr-room-name{font-size:14px;paint-order:stroke;stroke:#fffdf8;stroke-width:4px}
.wr-level-tag{font-size:12px;font-weight:750;letter-spacing:.03em;paint-order:stroke;stroke:#fffdf8;stroke-width:4px}
.wr-room-eye path{fill:#fffdf8;stroke:#755079;stroke-width:1.8}
.wr-room-eye circle{fill:#755079;stroke:#fffdf8;stroke-width:.8}
.wr-room-curse circle{fill:#755079;stroke:#fffdf8;stroke-width:1.2}
#wrSvg .wr-room-curse text{fill:#fffdf8;font-size:14px;font-weight:750}
.wr-room-dark circle{fill:#414957;stroke:#fffdf8;stroke-width:1.2}
#wrSvg .wr-room-dark text{fill:#fffdf8;font-size:14px;font-weight:750}
.wr-cold{fill:#b1dfe8;fill-opacity:.55;stroke:#8bbbc6;stroke-width:1}
.wr-actor .wr-actor-face{stroke:#fffdf8;stroke-width:2}
.wr-actor.selected .wr-actor-face{stroke:#183f48;stroke-width:3}
.wr-actor .wr-player-halo{fill:none;stroke:#a97623;stroke-width:3}
.wr-actor text{font-size:12px;font-weight:750}
.wr-actor:hover .wr-actor-face{stroke:#183f48;stroke-width:3}
.wr-trust-tag{fill:#fffdf8;stroke:#9fc4ca;stroke-width:1}
#wrSvg .wr-trust-number{font-size:13px;fill:#183f48}
.wr-trust-change{fill:#183f48;stroke:#fffdf8;stroke-width:1.5}
.wr-opinion-strip{stroke:#fffdf8;stroke-width:.6}
.wr-inv{fill:#a97623;stroke:#fffdf8;stroke-width:1}
.wr-carry{stroke:#805516;stroke-width:2;stroke-dasharray:3 3;fill:none}
#wrSvg .wr-curse{fill:#755079;font-size:22px}
#wrSvg .wr-sleep{fill:#755079;font-size:18px}
.wr-count circle{fill:#216b78}
#wrSvg .wr-count text{fill:#fffdf8;font-weight:700}
.wr-controlled-ring{stroke:#a97623;stroke-width:5}
.wr-selected-ring{stroke:#183f48;stroke-width:5}
.wr-side{border-left:1px solid #9fc4ca;overflow:auto;min-height:0;scrollbar-gutter:stable;background:#fffdf8}
.wr-controlled{background:#dcecee;padding:14px 16px;border-bottom:1px solid #9fc4ca;display:grid;gap:6px}
.wr-controlled>span,.wr-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:750;color:#16525d}
.wr-controlled small,.wr-small{font-size:.8125rem;line-height:1.5;color:#3c4b54}
.wr-detail{padding:20px 16px;font-size:.9375rem;line-height:1.6;overflow-wrap:anywhere}
.wr-detail h2{font:700 1.5rem/1.25 var(--font-editorial);color:#183f48;margin:6px 0 16px}
.wr-detail h3{font:700 1.125rem/1.35 var(--font-editorial);color:#183f48;margin:22px 0 8px}
.wr-detail p{margin:8px 0 12px}
.wr-shell .wr-chip{display:inline-flex;align-items:center;min-height:32px;border:1px solid #9fc4ca;background:#fffdf8;color:#16525d;border-radius:99px;padding:4px 10px;font:650 .875rem/1.4 var(--font-ui);text-decoration:none;white-space:normal;text-align:left;max-width:100%;overflow-wrap:anywhere}
.wr-shell a.wr-chip:hover{color:#fffdf8;background:#183f48}
.wr-chips{display:flex;flex-wrap:wrap;gap:6px}
.wr-detail ul{padding-left:20px;margin:8px 0}
.wr-inventory-panel{padding:12px;border:1px solid #9fc4ca;border-radius:10px;background:#f3f8f7;margin:12px 0 16px}
.wr-detail .wr-inventory-panel h3{margin:0 0 8px}
.wr-detail li{margin:5px 0}
.wr-detail dl{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1fr);gap:5px 10px;font-size:.8125rem;margin:10px 0}
.wr-detail dt{color:#3c4b54}.wr-detail dd{margin:0}
.wr-events>li{border-bottom:1px solid #dcecee;padding-bottom:10px}
.wr-detail details{margin:18px 0}.wr-detail summary,.wr-legend summary{cursor:pointer;font-size:.8125rem;font-weight:750;color:#16525d}
.wr-room-stage{padding:16px;border:2px solid #9fc4ca;background:repeating-linear-gradient(0deg,#f1ede3 0 1px,transparent 1px 28px),#fffdf8;display:flex;gap:12px;flex-wrap:wrap;min-height:90px}
.wr-resident{display:grid;gap:4px}.wr-resident small{font-size:.8125rem}
.wr-hash{font-family:var(--font-code);font-size:.75rem;word-break:break-all}
.wr-transcript{border-left:3px solid #9fc4ca;padding:6px 10px;margin:10px 0;background:#faf7f0}
.wr-transcript pre{white-space:pre-wrap;overflow-wrap:anywhere;font:.9375rem/1.6 var(--font-editorial);margin:4px 0}
.wr-legend{border-top:1px solid #9fc4ca;padding:8px 12px;font-size:.75rem;display:flex;flex-wrap:wrap;gap:5px 14px;background:#faf7f0}
.wr-gold{color:#805516}.wr-dark-marker{color:#414957;font-weight:650}.wr-legend details{margin:0;flex-basis:100%}.wr-legend p{max-width:90ch}
.wr-trust-key{flex-basis:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:3px;max-width:100%;font-size:.875rem}
.wr-trust-scale{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));max-width:540px;border:1px solid #a2b3b5;border-radius:5px;overflow:hidden}
.wr-trust-scale span{min-width:0;text-align:center;line-height:1.7;font-size:.875rem;font-weight:650;border-right:1px solid #ffffff66;font-variant-numeric:tabular-nums}
.wr-trust-scale span:last-child{border-right:0}
.wr-scale-labels{display:flex;justify-content:space-between;gap:8px;max-width:540px;font-size:.8125rem}
#wrRelationCaption{font-size:.875rem;overflow-wrap:anywhere}
#wrRelationChanges{font-size:.8125rem;color:#183f48}
.wr-trust-badge{display:inline-block;border:1px solid #899d9c;border-radius:5px;padding:2px 6px;font-size:.875rem;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}
.wr-reference-badge{background:#d4dbe0;color:#183f48}
.wr-detail .wr-opinions{list-style:none;padding:0;display:grid;gap:6px}
.wr-opinions li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@media screen and (min-width:851px) and (min-height:651px){body[data-route=world-replay] .wr-shell{height:calc(100dvh - var(--topbar-h) - 32px)}body[data-route=world-replay] #routeContent{min-height:0}body[data-route=world-replay] .page-head{display:none}.wr-toolbar>label{max-width:260px}.wr-viewport{min-height:0}.wr-legend details[open]{max-height:150px;overflow:auto}}
@media(max-width:1100px){.wr-layout{grid-template-columns:minmax(0,1fr) 290px}.wr-toolbar{gap:8px}}
@media(max-width:850px),(max-height:650px){.wr-layout{grid-template-columns:1fr}.wr-viewport{height:65vh;min-height:360px;flex:none}.wr-side{border-left:0;border-top:1px solid #9fc4ca;max-height:none;overflow:visible}.wr-toolbar>label{min-width:200px}.wr-toolbar #wrRun{max-width:none}.wr-time .wr-range{min-width:130px}.wr-legend{padding:12px}.wr-map-controls{position:static}}
@media(prefers-reduced-motion:reduce){.wr-dock-expanded.opening{animation:none}}
@media print{.wr-toolbar,.wr-time,.wr-map-controls{display:none}.wr-layout{display:block}.wr-viewport{height:auto;overflow:visible}#wrSvg{width:100%!important;height:auto!important}.wr-side{overflow:visible}.wr-shell{height:auto}}
