html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:#101820;font-family:system-ui,sans-serif}.map{position:fixed;top:0;right:0;bottom:0;left:0}.scenario-notice-region{position:fixed;top:24px;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 32px));z-index:8;pointer-events:none}.scenario-notice{box-sizing:border-box;display:flex;align-items:center;gap:14px;padding:20px 22px;border:1px solid #81d5c7;border-radius:14px;color:#f2fffc;background:#102f3af5;box-shadow:0 8px 28px #071b3459;text-align:center;overflow-wrap:anywhere}.scenario-notice>div{flex:1;min-width:0}.scenario-notice strong{display:block;font-size:clamp(28px,2.2vw,32px);font-weight:750;line-height:1.4;word-break:keep-all}.scenario-notice-icon{color:#9aeee0;font-size:30px;line-height:1}.scenario-notice-suffix{display:block;margin-top:6px;font-size:19px;line-height:1.4}.diagnostics{position:absolute;bottom:70px;left:12px;max-width:470px;max-height:40vh;overflow:auto;padding:10px 14px;color:#edf8ff;background:#081520e8;border:1px solid #64869d;border-radius:6px;font-size:12px;z-index:5}.scenario-panel{position:absolute;top:12px;left:12px;width:322px;max-height:calc(100vh - 80px);overflow:hidden;display:flex;flex-direction:column;padding:14px;color:#eff8fc;background:#102733f0;border:1px solid #527583;border-radius:12px;box-shadow:0 8px 28px #071b3440;z-index:6}.scenario-panel h2{font-size:16px;margin:18px 0 10px;padding-top:12px;border-top:1px solid #527583}.scenario-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0;flex-shrink:0}.scenario-panel .scenario-stages button{padding:9px 2px;font-size:15px}.scenario-stages small{display:block;font-size:10px;font-weight:400;margin-top:3px}.scenario-panel .scenario-stages [aria-current=step]{background:#69d5c8;border-color:#a9fff0}.common-status{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.scenario-panel .common-status [role=status]{margin:0;font-size:13px}.scenario-panel .common-status button{padding:5px 9px;font-size:12px}.scenario-panel .cargo-plan{margin:8px 0 3px}.scenario-panel .cargo-counts strong{font-size:18px}.stage-body{overflow:auto;min-height:0;flex:1}.scenario-panel .stage-body h1{font-size:21px;margin:10px 0}.stage-hint,.required-ramp{font-size:11px;line-height:1.5;color:#bbd5df}.common-observation{flex-shrink:0;border-top:1px solid #527583;margin-top:8px;padding-top:6px}.common-observation summary{font-size:12px;cursor:pointer;padding:6px 0}.common-observation details[open]{overflow:visible}.observation-popup{position:fixed;top:12px;right:12px;width:280px;max-height:calc(100vh - 180px);overflow-y:auto;overflow-x:hidden;padding:14px;color:#eff8fc;background:#102733f5;border:1px solid #527583;border-radius:10px;box-shadow:0 8px 28px #071b3440}.scenario-panel .view-actions button{min-width:0;padding:7px;font-size:12px}.scenario-panel .entry-status{margin:3px 0 6px;font-size:11px}.rate-control{display:block;font-size:12px;margin-top:12px}.rate-control output{float:right}.rate-control input{display:block;width:100%;accent-color:#69d5c8;margin:10px 0}.rate-control small,.balance-summary small{font-size:10px;color:#a9c4ce}.balance-summary{font-size:11px;line-height:1.7;border-top:1px solid #527583;padding-top:5px}.balance-summary strong,.balance-summary span,.balance-summary small{display:block}.contact-label{position:absolute;z-index:4;pointer-events:none;display:flex;align-items:center;gap:5px;transform:translate(16px,-50%);font-size:11px;white-space:nowrap;text-shadow:0 1px 2px #000}.contact-label:before{content:"";position:absolute;left:-16px;width:16px;border-top:2px solid currentColor}.contact-symbol{width:36px;height:36px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;background:#112733ed;box-sizing:border-box}.contact-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.contact-label[data-state=blocked]{color:#ff8271}.contact-label[data-state=moving]{color:#ffe37b}.contact-label[data-state=open]{color:#8ff5ba}.contact-label[data-state=waiting]{color:#d2dbe1}.cargo-plan,.model-loading{font-size:12px;line-height:1.6}.cargo-inventory{margin:12px 0;font-size:12px}.cargo-inventory summary{cursor:pointer;padding:8px 0}.cargo-inventory table{width:100%;border-collapse:collapse}.cargo-inventory th,.cargo-inventory td{padding:5px 2px;border-bottom:1px solid #ffffff20}.cargo-inventory th{text-align:left}.cargo-inventory td{text-align:right}.ramp-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ramp-actions button{width:100%;padding:9px 3px;font-size:13px}.ramp-actions span{display:block;font-size:11px;text-align:center;margin-top:6px;color:#b6d1dc}.view-actions{display:flex;gap:8px;margin-top:12px}.view-actions button{flex:1;padding:7px}.wall-control{display:block;font-size:12px;margin-top:14px}.wall-control output{float:right}.wall-control input[type=range]{width:100%;accent-color:#69d5c8}.vessel-display{display:flex;gap:16px;margin:14px 0 0;padding:8px 10px 10px;border:1px solid #527c88;border-radius:6px}.vessel-display legend{padding:0 4px;font-size:12px}.vessel-display label{display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}.vessel-display input[type=radio]{margin:0;accent-color:#69d5c8}.cargo-counts{display:flex;justify-content:space-between;font-size:13px}.cargo-counts strong{font-size:24px;color:#a3ecdb}.loading-button{width:100%;margin-top:10px}.loading-status{font-size:12px;line-height:1.5;color:#bed4dc}.last-car{font-size:11px;color:#c6dce5;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.deck-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0;font-size:11px;color:#c6dce5}.deck-counts strong{color:#a3ecdb}.last-car i{display:inline-block;width:12px;height:12px;border:1px solid #9ca8ae;border-radius:3px}.contract-error{font-size:11px;color:#ffc5a8;overflow-wrap:anywhere}.diagnostic-preview{font-size:12px;margin-top:10px}.scenario-kicker{color:#a7c7d4;font-size:12px;letter-spacing:.08em}.scenario-panel h1{margin:6px 0 12px;font-size:26px}.scenario-panel [role=status]{margin:0 0 12px;font-weight:600;overflow-wrap:anywhere}.scenario-panel progress{width:calc(100% - 46px);height:8px;accent-color:#64d1c4}.scenario-progress{display:inline-block;width:44px;font-size:12px;text-align:right}.scenario-actions,.landing-views{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.scenario-panel button{border:1px solid #6d919e;border-radius:6px;background:#e4f2f6;color:#123340;padding:9px 14px;font-size:14px;font-weight:650;cursor:pointer}.scenario-actions button{flex:1}.scenario-actions button:first-child{color:#062a31;background:#69d5c8;border-color:#69d5c8}.scenario-panel button:disabled{opacity:.4;cursor:default}.scenario-panel button:focus-visible{outline:3px solid #ffdd87;outline-offset:2px}.landing-toggle{width:100%;margin-top:10px}.entry-toggle{width:100%;margin-top:18px}.entry-toggle[aria-pressed=true]{border-color:#69d5c8}.entry-status{display:flex;gap:10px;margin-top:12px;font-size:13px;color:#c2d7e1}.entry-status span{border-left:1px solid #527583;padding-left:10px}.entry-status[data-state=OPEN]{color:#69efd1}.entry-status[data-state=CLOSED]{color:#ffb19c}.entry-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.entry-controls button{flex:1;padding:9px 6px;font-size:13px}.entry-controls .landing-note{width:100%}.landing-views button{font-size:12px;padding:8px 10px}.landing-note{margin:12px 0 0;font-size:12px;line-height:1.6;color:#b5ccd6}.command-error{color:#ffd7b5;font-size:13px}.diagnostics p{margin:6px 0}.diagnostics button{margin:3px;cursor:pointer}.point-label{position:absolute;transform:translate(10px,-50%);pointer-events:none;white-space:nowrap;font-size:12px;font-weight:650;text-shadow:0 1px 3px #000,1px 0 3px #000}.failure{position:absolute;top:10px;right:10px;color:#fff;background:#793222d9;padding:10px 16px;border-radius:4px;z-index:5}
