.page.situation{padding:0;background:#071522;color:#cee2ed}.situation-screen{--cyan:#56d3cf;min-height:calc(100vh - 64px);padding:22px 24px 12px;background:radial-gradient(ellipse at 48% 35%,#12324466,transparent 56%),#071522;font-family:Inter,"Microsoft YaHei",sans-serif}.twin-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid #26566a66}.twin-eyebrow{color:#78a4b7;letter-spacing:3px;font-size:9px;margin-bottom:6px}.twin-header h1{margin:0;color:#ecf6ff;font-size:25px;font-weight:600;letter-spacing:5px}.twin-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.situation-screen button,.situation-screen select{background:#143042;color:#bcd7e6;border:1px solid #315469;border-radius:4px;padding:7px 11px;font-size:11px;cursor:pointer;box-shadow:none}.situation-screen button:hover{background:#205068;color:#fff;border-color:#68c4d5}.situation-screen button:focus-visible,.situation-screen [role=button]:focus-visible{outline:2px solid #70ede3;outline-offset:3px}.twin-context select{max-width:200px}.twin-mode{font-size:10px;border-left:1px solid #355568;padding-left:10px;color:#71cfc6}.twin-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 0}.situation-screen .twin-metric{display:flex;align-items:center;text-align:left;gap:17px;background:linear-gradient(90deg,#163b4b80,transparent);border:0;border-left:2px solid #409d9d;border-radius:0;padding:9px 16px}.twin-metric small{font-size:12px;color:#a6c6d7}.twin-metric strong{font-size:31px;line-height:1.2;font-family:Consolas,monospace;font-weight:400;color:#73e0d6}.twin-metric span{margin-left:auto;color:#426a7e;font-size:9px;letter-spacing:1px}.situation-screen .twin-metric.danger{border-left-color:#a74b60;background:linear-gradient(90deg,#63344544,transparent)}.twin-metric.danger strong{color:#ff7989}.situation-screen .twin-metric.warning{border-left-color:#a57d48}.twin-metric.warning strong{color:#f7c07a}.twin-layout{display:grid;grid-template-columns:225px minmax(300px,1fr) 245px;gap:16px;align-items:start}.twin-left,.twin-right{display:flex;flex-direction:column;gap:15px}.twin-panel{background:linear-gradient(120deg,#102939cc,#0c202dcc);border:1px solid #244658;position:relative;min-width:0}.twin-panel:before,.twin-stage:before{content:"";position:absolute;top:-1px;left:-1px;width:24px;height:2px;background:#65bbb9}.twin-panel-title{display:flex;align-items:center;justify-content:space-between;padding:13px 14px 11px;border-bottom:1px solid #1d4052}.twin-panel-title h2,.twin-stage h2{font-size:13px;color:#d8edf5;margin:0;font-weight:500;letter-spacing:1px}.twin-panel-title h2:before{content:"";width:3px;height:11px;display:inline-block;background:#59d1c9;margin-right:8px;vertical-align:-1px}.twin-panel-title>span{font-size:10px;color:#7797a8}.situation-screen .twin-station{display:flex;align-items:center;gap:8px;width:100%;padding:14px 12px;border:0;border-bottom:1px solid #23445570;background:transparent;border-radius:0;text-align:left}.twin-station>span{display:grid;gap:6px;min-width:0}.twin-station strong{font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twin-station small{font-size:9px;color:#7798a9}.twin-station b{margin-left:auto;font-size:9px;color:#79bcae;font-weight:400;white-space:nowrap}.healthy-dot,.alarm-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#51d9b9;box-shadow:0 0 8px #50d0b555}.alarm-dot{background:#ff687c;box-shadow:0 0 8px #ff687c88}.situation-screen .twin-station.selected{background:#20516666;border-left:2px solid #5fded4;padding-left:10px}.situation-screen .twin-partitions>button{display:flex;justify-content:space-between;width:calc(100% - 20px);margin:8px 10px;background:transparent;border-color:transparent;padding:9px}.twin-partitions>button small{color:#7496a9;font-size:10px}.situation-screen .twin-partitions>button.selected{background:#1a4656;border:1px solid #3a7181;color:#78e3d3}.twin-partitions>p{padding:12px;font-size:11px;color:#7799aa}.twin-link{padding-bottom:14px}.link-flow{display:flex;gap:8px;align-items:center;padding:16px 12px;font-size:9px;line-height:1.7}.link-flow span{max-width:80px}.link-flow i{width:6px;height:6px;background:#5ed4bc;border-radius:50%;flex-shrink:0}.link-flow b{color:#4cacc0}.twin-keyvalue{display:grid;grid-template-columns:auto 1fr;gap:13px 12px;font-size:10px;line-height:1.6;padding:0 14px}.twin-keyvalue>span{color:#7898ac}.twin-keyvalue>b{font-weight:400;text-align:right;color:#c4dbe7}.twin-keyvalue .mint{color:#60d9bf}.twin-stage{position:relative;min-width:0;min-height:650px;background:radial-gradient(ellipse at 50% 65%,#13465940,transparent 70%);border:1px solid #214253;overflow:hidden}.twin-stage-heading{display:flex;align-items:center;justify-content:space-between;padding:16px;gap:12px}.twin-stage-heading small{display:block;color:#66899f;font-size:10px;margin-top:7px}.twin-tabs{display:flex;gap:3px}.situation-screen .twin-tabs button{padding:5px 10px;background:transparent;border-color:transparent;font-size:10px}.situation-screen .twin-tabs .selected{color:#6fe4d5;background:#1c4655;border-color:#356673}.twin-scene{position:relative;height:520px;display:flex;align-items:center;justify-content:center}.twin-svg{width:100%;height:100%;overflow:visible}.building-label{font:20px "Microsoft YaHei",sans-serif;fill:#90b8c8;paint-order:stroke;stroke:#0a2434;stroke-width:3px}.twin-zone,.twin-camera{cursor:pointer}.twin-zone:hover{filter:brightness(1.5)}.twin-zone.is-alarm circle{animation:twin-pulse 2s ease-in-out infinite}.twin-scene-note{position:absolute;left:15px;bottom:8px;font-size:9px;color:#456d84;letter-spacing:1px}.twin-stage-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-top:1px solid #20415255;flex-wrap:wrap}.twin-legend{display:flex;gap:12px;font-size:9px;color:#89a9bc}.twin-legend span:before{content:"";display:inline-block;width:5px;height:5px;background:var(--dot);margin-right:5px;border-radius:1px}.twin-tools{display:flex;gap:4px}.situation-screen .twin-tools button{font-size:10px;padding:5px 8px}.twin-layers{padding:0 14px 13px;display:flex;gap:15px;font-size:10px;color:#7e9eb2}.twin-layers label{display:flex;gap:5px;align-items:center;cursor:pointer}.twin-layers input{accent-color:#4dc6ba;width:11px;height:11px}.twin-zone-title{display:flex;align-items:center;gap:8px;padding:17px 14px 8px}.twin-zone-title i{width:7px;height:7px;border-radius:2px}.twin-zone-title h3{font-size:13px;margin:0;font-weight:500}.twin-state{padding:0 14px 16px;font-size:11px}.twin-detail .twin-keyvalue{padding-bottom:18px}.twin-detail-actions{display:flex;gap:6px;padding:0 14px 15px}.situation-screen .twin-detail-actions button{font-size:10px;flex:1;padding:7px 4px}.twin-current-event{background:#5b263333;margin:0 12px 14px;border-left:2px solid #c55b6e;padding:11px;display:grid;gap:7px}.twin-current-event small,.twin-current-event span{font-size:10px;color:#a98e9e}.twin-current-event strong{font-size:12px;color:#ff94a0;font-weight:500}.situation-screen .twin-current-event button{background:none;border:0;text-align:left;color:#ff9da8;padding:4px 0;font-size:10px}.situation-screen .twin-event{display:grid;gap:7px;padding:13px 14px;border:0;border-bottom:1px solid #244454;border-radius:0;width:100%;background:transparent;text-align:left}.twin-event>span{font-size:10px;color:#ff8a98;display:flex;align-items:center;gap:6px}.twin-event i{width:4px;height:4px;background:#ff667b;display:inline-block}.twin-event>span small{margin-left:auto;color:#668a9f;font-family:Consolas,monospace;font-size:9px}.twin-event strong{font-size:11px;font-weight:400;color:#c2d8e4}.twin-event>small{font-size:9px;color:#7699ac}.twin-empty{font-size:11px;line-height:1.8;padding:26px 14px;color:#7b9caf;text-align:center}.twin-footer{display:flex;justify-content:space-between;gap:12px;color:#577d92;font-size:9px;padding-top:15px;line-height:1.6}.twin-footer .healthy-dot{width:4px;height:4px;margin-right:6px}.situation-screen:fullscreen{overflow:auto;min-height:100vh}.station-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e1e8ef;border:1px solid #e1e8ef;border-radius:7px;overflow:hidden;margin-bottom:20px}.station-summary>div{background:#fff;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.station-summary small{color:#7c8ba0}.station-summary strong{font-size:26px;color:#23466d}.station-topology{margin-bottom:20px;padding-bottom:25px}.station-topology-main{display:flex;justify-content:center;gap:20px;padding:25px 20px 0}.station-topology-main>div{display:grid;text-align:center;gap:10px;min-width:240px;background:#eff5ff;border:1px solid #bbd0f4;border-top:3px solid #3b75dd;border-radius:5px;padding:16px}.station-role{font-size:10px;color:#3563a1;letter-spacing:1px}.station-topology-main strong,.station-topology-subs strong{font-size:14px;color:#263e5c}.station-topology-main small,.station-topology-subs small{font-size:11px;color:#738499}.station-connector{height:35px;width:1px;background:#b6c9df;margin:auto}.station-topology-subs{display:flex;justify-content:center;gap:20px;padding:0 22px;flex-wrap:wrap}.station-topology-subs button{display:grid;gap:10px;min-width:210px;flex:1;max-width:310px;padding:18px;background:#fff;border:1px solid #cbd8e6;border-radius:5px;cursor:pointer;text-align:center}.station-topology-subs button:hover{border-color:#3972d8;background:#f8fbff}.station-topology-subs em{font-size:10px;font-style:normal;color:#8d9bad;border-top:1px solid #edf1f5;padding-top:10px}.station-role.independent{color:#638777}.station-boundaries{display:grid;grid-template-columns:repeat(3,1fr);padding:22px;gap:30px;margin-top:20px}.station-boundaries strong{font-size:12px;color:#3c5674}.station-boundaries p{font-size:11px;line-height:1.9;color:#8a98a9;margin-bottom:0}.station-form-note{background:#f2f6fb;color:#60748d;font-size:12px;line-height:1.8;padding:12px;border-radius:4px}.station-scope-options{display:flex;gap:18px;flex-wrap:wrap}.station-scope-options label{display:flex;gap:6px;align-items:center}.station-scope-options input{width:auto!important}.station-topology button:focus-visible{outline:2px solid #3972d8;outline-offset:3px}@keyframes twin-pulse{50%{opacity:.45}}@media(min-width:1650px){.twin-layout{grid-template-columns:265px minmax(400px,1fr) 285px}.twin-stage{min-height:700px}.twin-scene{height:570px}.twin-station strong{font-size:12px}.twin-panel-title h2{font-size:14px}}@media(max-width:1200px){.twin-layout{grid-template-columns:180px minmax(280px,1fr) 205px;gap:10px}.situation-screen{padding:18px 14px}.twin-stage{min-height:595px}.twin-scene{height:460px}.twin-station b{display:none}.twin-context{gap:6px}.twin-mode{display:none}.twin-metric span{display:none}.twin-metric strong{font-size:26px}.twin-metric small{font-size:10px}.twin-detail-actions{flex-wrap:wrap}.twin-keyvalue{gap:10px 5px;font-size:9px}}@media(max-width:1000px){.twin-layout{grid-template-columns:180px minmax(0,1fr)}.twin-right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.twin-stage{min-height:600px}.twin-header{flex-wrap:wrap}.twin-summary{gap:8px}.station-topology-subs{gap:10px}.station-summary>div{padding:14px}.station-boundaries{gap:15px}}@media(max-width:600px){.situation-screen{padding:16px 12px}.twin-header h1{font-size:23px}.twin-eyebrow{font-size:8px;letter-spacing:2px}.twin-context{width:100%}.twin-context select{flex:1;max-width:none}.twin-summary{grid-template-columns:repeat(2,1fr);padding:14px 0;gap:10px}.situation-screen .twin-metric{padding:10px}.twin-metric strong{font-size:28px}.twin-metric small{font-size:11px}.twin-layout{display:flex;flex-direction:column;gap:14px}.twin-left{display:contents}.twin-left>.twin-panel:first-child{width:100%;order:0}.situation-screen .twin-station{padding:12px}.twin-station b{display:block}.twin-partitions{width:100%;order:1}.twin-link{width:100%;order:4}.twin-stage{order:2;width:100%;min-height:440px}.twin-scene{height:300px}.twin-stage-heading{padding:12px}.twin-stage h2{font-size:12px}.twin-tabs{gap:0}.situation-screen .twin-tabs button{padding:5px 7px}.twin-right{display:flex;width:100%;order:3}.twin-detail,.twin-events{width:100%}.twin-keyvalue{font-size:11px;gap:12px}.twin-footer{flex-wrap:wrap;font-size:8px}.twin-detail-actions{flex-wrap:nowrap}.twin-detail-actions button{padding:10px!important}.station-summary{grid-template-columns:repeat(2,1fr)}.station-boundaries{grid-template-columns:1fr;gap:18px}.station-topology-main>div{min-width:0;width:100%}.station-topology-subs{flex-direction:column}.station-topology-subs button{max-width:none;width:100%}.twin-stage-bottom{gap:10px}.twin-tools{margin-left:auto}.twin-layers{padding-bottom:15px}.building-label{font-size:14px}.station-scope-options{gap:12px}}@media(prefers-reduced-motion:reduce){.twin-zone.is-alarm circle{animation:none}}

.twin-left>.twin-panel:first-child{max-height:330px;overflow:auto;scrollbar-width:thin;scrollbar-color:#2b5668 #102837}.twin-left>.twin-panel:first-child .twin-panel-title{position:sticky;top:0;z-index:2;background:#102b3a}.station-group+.station-group{border-top:1px solid #edf1f5;margin-top:25px}.station-independent-lane{border-top:1px dashed #d1ddd7;margin:25px 22px 0;padding-top:18px}.station-lane-title{font-size:12px;color:#577768;padding-bottom:16px}.station-lane-title span{font-size:10px;color:#9aa8a0;padding-left:10px}.station-independent-lane .station-topology-subs{padding:0;justify-content:flex-start}.station-no-children{font-size:11px;text-align:center;padding:20px;color:#91a0b2}.station-topology td small.sub{display:block}.station-topology-subs button{white-space:normal}

@media(min-width:1001px){.situation-screen{height:calc(100vh - 56px);min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;box-sizing:border-box}.twin-layout{min-height:0;align-items:stretch}.twin-left,.twin-right{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#2c5264 transparent}.twin-left>.twin-panel,.twin-right>.twin-panel{flex-shrink:0}.twin-stage{height:100%;min-height:0;display:flex;flex-direction:column}.twin-scene{height:auto;min-height:180px;flex:1}.twin-stage-heading,.twin-stage-bottom,.twin-layers{flex-shrink:0}.situation-screen:fullscreen{height:100vh;min-height:0}}

.twin-fullscreen aside,.twin-fullscreen .topbar,.twin-fullscreen .nav-mask{display:none!important}.twin-fullscreen .shell{margin-left:0!important}.twin-fullscreen .situation-screen{height:100vh;min-height:0}.twin-fullscreen .page.situation{padding:0}
