/* The scene remains the primary interaction surface. Annotations are projected onto its local viewport. */
#iw-layer {--iw-ink:#163d35;--iw-mid:#416b5d;--iw-edge:#9ab7a7;--iw-paper:#fffff6;--iw-teal:#12614f;--iw-gold:#c68d42;position:absolute;inset:0;z-index:5;overflow:hidden;isolation:isolate;pointer-events:none;font:500 14px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--iw-ink);text-align:left}
#iw-layer * {box-sizing:border-box}
#iw-layer [hidden] {display:none!important}
#iw-layer .iw-wires,#iw-layer .iw-objects {position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.iw-wires path {stroke:#265e4f;stroke-opacity:.73;stroke-width:1.25;fill:none;vector-effect:non-scaling-stroke}
.iw-wires circle {fill:#216b55;stroke:#fff9e9;stroke-width:1.4;vector-effect:non-scaling-stroke}
.iw-wires .iw-line-display path,.iw-wires .iw-line-document path {stroke:#4dac93;stroke-width:1.6}
.iw-wires .iw-line-display circle,.iw-wires .iw-line-document circle {fill:#17846b}
.iw-wires .iw-line-flow path,.iw-wires .iw-line-journey path {stroke:#8c692f;stroke-opacity:.8}
.iw-wires .iw-line-flow circle,.iw-wires .iw-line-journey circle {fill:#af7c37}
.iw-object {position:absolute;top:0;left:0;width:max-content;max-width:calc(100% - 12px);pointer-events:auto;will-change:transform}
#iw-layer button,#iw-layer a {font-family:inherit;-webkit-tap-highlight-color:transparent}
#iw-layer button {appearance:none;min-width:0;min-height:0;letter-spacing:normal;line-height:1.24;text-decoration:none;cursor:pointer;color:inherit;touch-action:manipulation}
#iw-layer button:disabled {opacity:.35;cursor:default}
#iw-layer :is(button,a,summary):focus-visible {outline:3px solid #cc8e40;outline-offset:3px}
#iw-layer .iw-icon {display:inline-block;flex:none;vertical-align:middle}
#iw-layer .iw-cluster-button,#iw-layer .iw-flow-button {display:flex;align-items:center;justify-content:flex-start;gap:8px;margin:0;text-align:left;padding:7px 9px 7px 7px;border:1px solid #91ab9b;border-radius:8px;background:linear-gradient(120deg,#fffffbf5,#f7faf1ed);box-shadow:0 2px 7px #263b2d29,inset 0 1px 0 #fff;transition:background .15s,box-shadow .15s,color .15s}
#iw-layer .iw-cluster-button:hover,#iw-layer .iw-flow-button:hover {background:#fbffef;border-color:#277653;box-shadow:0 2px 12px #20473538}
.iw-pin-mark,.iw-route-icon,.iw-stamp {display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:7px;background:#e0ecdf;color:#2d6a50}
.iw-pin-title,.iw-route-name {min-width:0;display:block}
.iw-pin-title b,.iw-pin-title small,.iw-route-name small,.iw-route-name b {display:block}
.iw-pin-title b {font-size:13px;font-weight:720;white-space:nowrap}
.iw-pin-title small {font-size:10px;color:#546f60;margin-top:2px;max-width:154px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iw-cluster .iw-icon:last-child {color:#718d78}
#iw-layer .iw-flow-button {width:202px;max-width:calc(94vw - 8px);padding:8px 10px 8px 7px;gap:8px;border-color:#b2aa8e;border-left:3px solid #b39050;background:linear-gradient(120deg,#fffffbf7,#fcf7e8f2)}
.iw-route-icon {width:23px;height:26px;background:#ebe6cc;color:#785b29;align-self:center}
.iw-route-name small {margin-bottom:3px;font-size:9px;font-weight:700;letter-spacing:.015em;color:#73653d}
.iw-route-name b {font-size:12px;line-height:1.28;font-weight:680;overflow-wrap:anywhere}
#iw-layer .iw-journey .iw-flow-button {width:188px;border-left-color:#638b78;border-color:#9ab5a2;background:#eef5e9f2}
.iw-journey .iw-route-name small {color:#47694f}
.iw-journey .iw-route-icon {color:#456c52;background:#d7e7d5}
.iw-flow-more,.iw-flow-empty {display:flex;align-items:center;gap:6px;background:#f8f9edf3;border:1px solid #aebda8;box-shadow:0 2px 8px #24352c19;border-radius:20px;color:#405c4c;font-size:11px;padding:4px 6px 4px 10px}
.iw-flow-empty {display:grid;border-radius:6px}
#iw-layer .iw-round {display:inline-grid;place-items:center;width:25px;height:25px;min-width:25px;border:1px solid #b0c3b4;border-radius:50%;color:#305844;background:#f4f7ee;padding:0}
#iw-layer .iw-round:hover {background:#dbe9d9}
.iw-speech,.iw-profile {border:1px solid #95b2a0;border-left:3px solid #468a70;border-radius:9px 9px 9px 3px;background:linear-gradient(133deg,#fffff9f7,#f3f8edee);box-shadow:0 3px 15px #12372c25,inset 0 1px 0 #fff;padding:10px 12px;width:clamp(200px,22vw,308px);color:#1e4035;font-size:13px}
.iw-speech-head {display:flex;align-items:center;gap:5px;margin-bottom:4px}
.iw-dot {display:inline-block;width:6px;height:6px;border-radius:100%;background:#44966b;box-shadow:0 0 0 2px #569b7524}
.iw-cue-label,.iw-code {font-size:9px;font-weight:720;letter-spacing:.04em;text-transform:uppercase;color:#56765b}
.iw-code {margin-left:auto;color:#76806c}
#iw-layer .iw-speaker {display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;font-weight:730;font-size:13px;text-align:left}
#iw-layer button.iw-speaker:hover {color:#087354;text-decoration:underline}
.iw-speech-text {font-size:13px;line-height:1.38;max-height:8.1em;overflow:auto;margin:3px 0 5px}
.iw-speech .iw-handoff {display:none}
.iw-cue-actions {display:flex;align-items:center;gap:6px;justify-content:space-between;flex-wrap:wrap;padding-top:4px;border-top:1px solid #ccdbcc}
.iw-playback {display:inline-flex;gap:2px;align-items:center}
#iw-layer .iw-toggle,#iw-layer .iw-cue-book,#iw-layer .iw-step,#iw-layer .iw-detail-toggle {display:inline-flex;align-items:center;justify-content:center;gap:4px;background:none;border:0;font-size:11px;font-weight:650;padding:5px 3px;color:#376751}
#iw-layer .iw-toggle:hover,#iw-layer .iw-step:hover,#iw-layer .iw-cue-book:hover,#iw-layer .iw-detail-toggle:hover {background:#dbe9d9;border-radius:4px}
#iw-layer .iw-step {width:23px;border-left:1px solid #c8d9c7}
.iw-cue-extra {max-height:19vh;overflow:auto;font-size:12px;margin:6px 0}
.iw-cue-extra p {margin:3px 0}
.iw-cue-extra b {font-size:11px}
.iw-display,.iw-document {width:clamp(178px,18vw,254px);border:1px solid #7cc7ae;border-radius:5px;background:linear-gradient(145deg,#d9f7e9ee,#c5e8d9df);box-shadow:0 0 0 3px #a8ebcc34,0 5px 20px #16453738}
#iw-layer .iw-display-button {display:block;width:100%;height:auto;background:none;border:0;border-radius:4px;margin:0;padding:0;text-align:left;color:#133e35}
.iw-display-top {display:flex;align-items:center;gap:6px;padding:5px 7px;color:#d8ffef;background:#164940f2;font-size:10px;border-radius:4px 4px 0 0}
.iw-display-top b {font-weight:650}
.iw-display-top svg:last-child {margin-left:auto}
.iw-img-wrap {display:block;position:relative;margin:5px 5px 0;height:clamp(74px,8.2vw,112px);overflow:hidden;border:1px solid #adc4b7;background:#f8faf2}
.iw-img-wrap img {height:100%;width:100%;object-fit:contain}
.iw-display-caption {display:block;min-height:20px;padding:3px 6px;color:#2a6652;font-size:9px;font-weight:710}
.iw-screen-switch {position:absolute;right:4px;bottom:2px;display:inline-flex;align-items:center;gap:4px;font-size:9px;font-variant-numeric:tabular-nums}
#iw-layer .iw-img-step {padding:1px;border:0;background:transparent;display:grid;place-items:center;width:18px;height:18px;border-radius:3px}
#iw-layer .iw-img-step:hover {background:#85b99e50}
.iw-document {padding:6px 8px;color:#295344;width:190px}
.iw-document small,.iw-document b {display:block}
.iw-document small {display:flex;align-items:center;gap:4px;font-size:10px;color:#4e755d}
.iw-document b {margin-top:3px;font-size:12px;overflow-wrap:anywhere}
.iw-profile {width:clamp(255px,26vw,345px);padding:10px 12px}
.iw-profile-head {display:flex;align-items:center;gap:7px}
.iw-profile-head>span:nth-child(2) {flex:1;min-width:0}
.iw-profile-head small,.iw-profile-head b {display:block}
.iw-profile-head small {font-size:9px;color:#60806c}
.iw-profile-head b {font-size:14px;line-height:1.2}
.iw-tabs {display:flex;align-items:center;gap:4px;border-bottom:1px solid #ccdbca;margin:7px 0 5px}
#iw-layer .iw-tab {border:0;border-bottom:2px solid transparent;padding:5px 7px;background:none;border-radius:0;font-size:11px;color:#597764;font-weight:660}
#iw-layer .iw-tab[aria-pressed=true] {color:#185e46;border-bottom-color:#397c61}
.iw-profile-body {max-height:clamp(100px,31vh,280px);overflow:auto;overscroll-behavior:contain}
.iw-profile-body p {margin:4px 0;font-size:12px}
.iw-profile-cue {display:block;font-size:13px;line-height:1.35;font-weight:550}
.iw-ticket {color:#54725b}
.iw-guide-item {display:flex;align-items:center;gap:6px;width:100%;border-top:1px solid #d9e2d5;padding:4px 0;font-size:11px}
.iw-guide-item>a {display:flex;gap:5px;align-items:center;flex:1;color:#1f6450;text-decoration:none;font-weight:620}
.iw-guide-item>a:hover span {text-decoration:underline}
.iw-guide-item>a>.iw-icon:last-child {margin-left:auto}
#iw-layer .iw-guide-inline {display:grid;place-items:center;padding:4px;border:0;color:#54765d;background:#e4ecdf;border-radius:4px}
#iw-layer .iw-task-row {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:5px;align-items:center;width:100%;padding:5px 0;border:0;border-bottom:1px solid #d8e3d4;background:none;text-align:left}
.iw-task-row span {grid-column:1/2;font-size:9px;color:#657b65}
.iw-task-row b {grid-column:1/2;font-size:12px;font-weight:590}
.iw-task-row svg {grid-column:2;grid-row:1/3}
.iw-other {font-size:12px;margin-top:6px}
.iw-other summary {cursor:pointer;font-weight:650}
.iw-lens {position:absolute;z-index:9;pointer-events:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(815px,84%);max-height:87%;display:flex;flex-direction:column;overflow:hidden;background:#f4f8ef;border:1px solid #77b9a2;border-radius:11px;box-shadow:0 0 0 4px #9bdbba45,0 10px 55px #1c493f54}
.iw-lens[data-lens=guides] {width:min(460px,88%)}
.iw-lens header,.iw-lens footer {display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 10px;background:#e4eee0;font-size:13px}
.iw-lens header {background:#164c3e;color:#edfbe7;}
.iw-lens header>span,.iw-lens footer nav {display:flex;align-items:center;gap:8px}
#iw-layer .iw-lens header .iw-round {background:transparent;border-color:#a3bba8;color:#fff}
#iw-layer .iw-zoom-photo {display:block;width:100%;padding:0;border:0;border-radius:0;overflow:auto;background:#e1e6d8;cursor:zoom-in}
#iw-layer .iw-zoom-photo img {display:block;width:100%;height:auto;max-height:59vh;object-fit:contain;margin:auto}
#iw-layer .iw-zoom-photo.is-zoomed {cursor:zoom-out}
#iw-layer .iw-zoom-photo.is-zoomed img {width:auto;max-width:none;max-height:none}
.iw-lens footer b,.iw-lens footer small {display:block}
.iw-lens footer b {font-size:12px}
.iw-lens footer small {font-size:10px;color:#526e58;margin-top:2px}
.iw-lens nav {flex:none;font-size:10px}
.iw-lens-guides {padding:8px 12px;overflow:auto}
#iw-layer.iw-inspecting .iw-objects,#iw-layer.iw-inspecting .iw-wires {visibility:hidden}
@media(max-width:700px){
 #iw-layer {font-size:13px}
 #iw-layer .iw-cluster-button {padding:4px 5px;gap:4px;border-radius:6px}
 .iw-pin-mark {width:18px;height:21px;border-radius:4px}
 .iw-pin-mark svg {width:12px;height:12px}
 .iw-pin-title b {font-size:11px}
 .iw-pin-title small {font-size:8px;max-width:100px}
 #iw-layer .iw-flow-button,#iw-layer .iw-journey .iw-flow-button {width:148px;max-width:43vw;gap:5px;padding:6px 5px}
 .iw-route-name small {font-size:8px;margin-bottom:2px}
 .iw-route-name b {font-size:10px;line-height:1.26}
 .iw-route-icon {width:17px;height:21px}
 .iw-speech {width:clamp(166px,42vw,228px);padding:7px 8px}
 .iw-speech-text {font-size:11px;line-height:1.32;max-height:6.7em}
 #iw-layer .iw-speaker {font-size:12px}
 .iw-display {width:clamp(122px,30vw,175px)}
 .iw-display-top {padding:4px;gap:3px;font-size:8px}
 .iw-img-wrap {height:clamp(48px,13vw,74px);margin:3px 3px 0}
 .iw-display-caption {font-size:8px;min-height:19px;padding:3px}
 .iw-screen-switch {gap:1px;font-size:8px}
 .iw-display:has(.iw-screen-switch) .iw-display-caption {max-width:70%}
 .iw-profile {width:clamp(220px,68vw,295px);padding:7px 8px}
 .iw-profile-body {max-height:26vh}
 .iw-lens {width:93%;max-height:90%}
 .iw-lens header,.iw-lens footer {padding:5px 7px}
 .iw-code,.iw-cue-label {font-size:8px}
 #iw-layer .iw-toggle,#iw-layer .iw-cue-book {padding:4px 2px;font-size:10px}
 .iw-cue-actions {gap:2px;padding-top:1px}
}
@media(max-height:480px) and (orientation:landscape){
 .iw-profile-body,.iw-cue-extra {max-height:23vh}
 .iw-lens {max-height:91%}
 #iw-layer .iw-zoom-photo img {max-height:55vh}
 .iw-speech-text {font-size:11px;max-height:4.1em}
 .iw-speech {width:220px;padding:5px 8px}
 .iw-img-wrap {height:60px}
}
@media(prefers-reduced-motion:reduce){#iw-layer * {transition-duration:0s!important}}
/* A handover joins two real actor positions, while a device interaction presents its screen closer. */
.iw-wires path.iw-exchange-path {stroke:#16775b;stroke-width:1.65;stroke-dasharray:4 4;opacity:.9}
.iw-wires circle.iw-exchange-dot {fill:#e6ba70;stroke:#235e48;stroke-width:1.3}
#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) {width:clamp(225px,25vw,346px);box-shadow:0 0 0 3px #9edbbd44,0 5px 25px #184d3e40}
#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) .iw-img-wrap {height:clamp(97px,12vw,158px)}
@media(max-width:700px){#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) {width:clamp(147px,43vw,210px)}#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) .iw-img-wrap {height:clamp(62px,18vw,90px)}}
@media(max-height:480px) and (orientation:landscape){#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) {width:220px}#iw-layer[data-beat="2"] .iw-display:not([data-media="reference"]) .iw-img-wrap {height:81px}}
#iw-layer .iw-flow-button {width:176px}
@media(max-width:700px){#iw-layer .iw-flow-button{width:139px}}

.iw-wh-station,.iw-wh-stock{--wh:#346e62;max-width:min(195px,42vw);color:#213f35;background:#fffff6f5;border:1px solid #9eb9a5;border-left:3px solid var(--wh);border-radius:7px;overflow:hidden;box-shadow:0 3px 12px #193d3228}
.iw-wh-station[data-wh-zone=inbound]{--wh:#35748b}.iw-wh-station[data-wh-zone=dispatch]{--wh:#25806c}.iw-wh-station[data-wh-zone=returns]{--wh:#a85f45}.iw-wh-station[data-wh-zone=exception]{--wh:#9c7438}
#iw-layer .iw-wh-station button,#iw-layer .iw-wh-stock button{margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;text-align:left}
#iw-layer .iw-wh-station-head,#iw-layer .iw-wh-stock-button{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;font:600 12px/1.2 system-ui}
.iw-wh-code{background:var(--wh);color:white;font:700 10px/1.2 system-ui;padding:3px 4px;border-radius:3px}
.iw-wh-caret{margin-left:auto;color:var(--wh)}#iw-layer .iw-wh-flow{display:flex;align-items:center;width:100%;gap:5px;padding:5px 8px;border-top:1px solid #dbe5d8;font:500 12px/1.2 system-ui}
#iw-layer .iw-wh-flow:hover,#iw-layer .iw-wh-lot:hover{background:#e8f0e6}
.iw-wh-stock{max-width:min(270px,52vw);border-left-color:#a47936}.iw-wh-stock-button b{font-weight:620}.iw-wh-stock-button small{font-weight:600;color:#695126}.iw-wh-ticket-icon{color:#896730}
.iw-wh-details{padding:7px 10px 9px;border-top:1px solid #cedacb;display:grid;gap:5px;font:12px/1.37 system-ui}.iw-wh-details small{color:#587264}.iw-wh-lots{display:flex;gap:3px;flex-wrap:wrap}
#iw-layer .iw-wh-lot{background:#eaf1e7;padding:4px;font:11px/1.2 system-ui;border-radius:3px}
#iw-layer .iw-wh-lot[aria-pressed=true]{background:#2b6253;color:#fff}
@media(max-width:600px){.iw-wh-stock{max-width:47vw}.iw-wh-station{max-width:40vw}#iw-layer .iw-wh-station-head,#iw-layer .iw-wh-stock-button{font-size:11px;gap:3px;padding:5px}#iw-layer .iw-wh-flow{font-size:11px;padding:5px}.iw-wh-details{max-height:28vh;overflow:auto;padding:5px;font-size:11px}}
