/* Video monitoring shares the customer shell; only camera stages use a dark surface. */
#page.customer-wall-page{padding:18px;background:#f2f5f8;min-width:0}
.video-wall{--wall-blue:#2866ec;display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;min-height:calc(100vh - 192px);color:#1b2637;font-family:inherit;min-width:0}
.video-wall *{box-sizing:border-box}
.video-wall button{font:inherit;font-size:13px;cursor:pointer;border:1px solid #dfe5ed;border-radius:5px;background:#fff;color:#526174;padding:7px 10px;min-height:32px;white-space:nowrap}
.video-wall button:hover{border-color:#91afea;background:#f3f7ff;color:#245bc5}
.video-wall button:focus-visible,.video-wall input:focus-visible,.video-wall select:focus-visible{outline:3px solid #91b7ff;outline-offset:2px}
.video-wall button:disabled{opacity:.55;cursor:default}
.video-wall input,.video-wall select{font:inherit;font-size:13px;color:#324257;background:#fff;border:1px solid #dce3ed;border-radius:5px;padding:8px 10px;min-width:0}
.video-wall h2{margin:0;font-size:16px;line-height:1.5;font-weight:600;color:#1b2637}
.wall-sidebar,.wall-board{background:#fff;border:1px solid #dfe5ed;min-width:0}
.wall-sidebar{display:flex;flex-direction:column}
.wall-list-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 16px;border-bottom:1px solid #e7ebf1}
.wall-list-header h2:before,.wall-title h2:before{content:'';display:inline-block;background:var(--wall-blue);height:15px;width:3px;margin-right:9px;vertical-align:-2px;border-radius:2px}
.wall-count{padding:1px 8px;border-radius:5px;background:#edf5ff;color:#2878e3;font-size:12px}
.wall-tabs{display:flex;margin:14px 14px 10px;border-bottom:1px solid #e8edf4;gap:8px}
.wall-tabs button{flex:1;border:0;border-radius:0;padding:9px 2px;background:transparent;color:#738095;border-bottom:2px solid transparent}
.wall-tabs button[aria-selected=true]{color:var(--wall-blue);font-weight:600;border-bottom-color:var(--wall-blue)}
.wall-tabs span{font-size:12px;margin-left:3px}
.wall-search-wrap{padding:0 14px}.wall-search-wrap input{width:100%;background:#f8fafc}
.wall-list-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 6px;color:#788598;font-size:12px;min-height:40px}
.wall-list-caption button{border:0;padding:0;min-height:28px;font-size:12px;color:#738095}
#wall-list{flex:1;padding:0 10px 12px;max-height:calc(100vh - 415px);min-height:200px;overflow:auto}
.wall-device{position:relative;display:flex;align-items:center;gap:3px;border:1px solid #e8edf3;margin:7px 0;border-radius:7px;background:#fafbfd}
.wall-device-active{border-color:#c6d9ff;background:#f1f6ff}
.wall-device>button[data-wall-camera]{display:flex;align-items:center;gap:10px;flex:1;min-width:0;width:100%;border:0;background:transparent;padding:12px 8px;text-align:left;white-space:normal}
.wall-camera-symbol{display:flex;align-items:center;justify-content:center;flex:none;width:33px;height:33px;border:1px solid #d5dfe9;border-radius:7px;background:#fff;color:#7e8d9d;font-size:22px}
.wall-device-info{display:flex;flex:1;flex-direction:column;min-width:0;gap:4px}.wall-device-info strong{font-size:13px;font-weight:600;color:#344153;overflow-wrap:anywhere}.wall-device-info small{font-size:11px;color:#7f8a9a;overflow-wrap:anywhere}.wall-device-status{font-size:11px;color:#7a8797}.wall-device-active .wall-device-status{color:#2866d2}.wall-device-add{color:#8b9aaf;font-size:19px;flex:none}
.wall-device .wall-remove-map{border:0;background:transparent;font-size:11px;padding:4px;min-height:30px;margin-right:4px;color:#8592a3}
.wall-list-footer{font-size:11px;color:#8994a4;padding:12px 15px;border-top:1px solid #edf0f5;line-height:1.8}
.wall-list-empty{padding:35px 12px;text-align:center;color:#8c98a8;font-size:12px}.wall-list-empty>span{font-size:32px;display:block;margin-bottom:15px;opacity:.7}.wall-list-empty strong{font-weight:500;display:block;color:#637286}.wall-list-empty p{line-height:1.9;margin-top:10px}
.wall-board{display:flex;flex-direction:column;min-width:0}
.wall-toolbar{padding:12px 14px;border-bottom:1px solid #e5eaf1;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wall-title{display:flex;align-items:center;gap:8px;min-width:0}.wall-title h2{white-space:nowrap}.wall-title #wall-collapse{border:0;background:transparent;padding:4px;font-size:18px;color:#76859a;min-width:28px}.wall-project{font-size:12px;color:#8994a4;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wall-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wall-layouts{display:flex;padding:2px;background:#f3f5f8;gap:2px;border-radius:5px;flex-wrap:wrap}.wall-layouts button{border:0;background:transparent;padding:6px 9px;color:#708096;min-height:29px}.wall-layouts button[aria-pressed=true]{background:#fff;color:var(--wall-blue);box-shadow:0 1px 4px #182b4810}.wall-layouts button span{font-size:15px}
.video-wall .wall-primary{border-color:var(--wall-blue);background:var(--wall-blue);color:#fff}.video-wall .wall-primary:hover{background:#1b55d4;border-color:#1b55d4;color:#fff}
.wall-scheme-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:12px;color:#7b889a;flex-wrap:wrap}.wall-scheme-bar select{padding:5px 8px;font-size:12px;max-width:220px}.wall-scheme-bar label{white-space:nowrap}.wall-scheme-bar #wall-summary{margin-left:auto;font-variant-numeric:tabular-nums}.wall-scheme-bar #wall-back-grid{font-size:12px;padding:4px 8px;min-height:28px}
.wall-grid{display:grid;gap:1px;background:#455164;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));flex:1;margin:0 14px;min-height:460px;height:calc(100vh - 355px);border:1px solid #263246;overflow:hidden}
.wall-grid[data-layout="1"]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.wall-grid[data-layout="6"]{grid-template-rows:repeat(3,minmax(0,1fr))}.wall-grid[data-layout="9"]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.wall-grid.wall-grid-zoomed{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.wall-slot{background:#101929;position:relative;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;isolation:isolate}.wall-slot.wall-selected{box-shadow:inset 0 0 0 2px #5890ff;z-index:1}.wall-slot.wall-drop-target{box-shadow:inset 0 0 0 3px #65a2ff;background:#172c4d}
.wall-slot-header{position:absolute;inset:0 0 auto;display:flex;align-items:flex-start;gap:7px;padding:10px 9px;color:#e1e8f5;background:linear-gradient(#07111ddf,#07111d00);z-index:3;min-width:0}.wall-slot-title{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.wall-slot-title strong{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-slot-title small{font-size:10px;color:#b6c1d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-slot-number{color:#96a9c3;font-size:11px;padding-top:2px;flex:none}
.wall-slot-header button{background:#101a29bd;border:1px solid #75829855;color:#c3cedf;padding:2px 5px;min-height:25px;font-size:10px;border-radius:4px;flex:none}.wall-slot-header button:hover{background:#253b5e;color:#fff;border-color:#6787b5}.wall-slot-header [data-wall-close]{font-size:17px;padding:0 7px}
.wall-stage{flex:1;min-height:0;display:flex;position:relative;background:#050b14}.wall-stage-message{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;padding:58px 14px 32px;color:#8793a5;font-size:12px;text-align:center}.wall-stage-message strong{font-weight:500;color:#e0e7f1}.wall-stage-message span{font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.wall-stage .shanhe-media-stage{height:100%;width:100%;border-radius:0;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.wall-stage video{width:100%;height:100%;object-fit:contain}.wall-stage .shanhe-media-controls{z-index:3}.wall-stage .shanhe-media-controls button{color:#eef4ff;background:transparent;border:0}.wall-stage [data-media-status]{font-size:11px!important;padding:14px!important;line-height:1.6}
.wall-empty-number{position:absolute;top:13px;left:13px;color:#56667e;font-size:12px}.wall-slot>.wall-empty{display:flex;flex:1;min-height:0;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;color:#b4bfd0;white-space:normal;padding:28px 10px;border-radius:0}.wall-slot>.wall-empty:hover{background:#162238;color:#dbe7ff}.wall-empty>span{font-size:26px;font-weight:400;border:1px solid #3c4960;width:36px;height:36px;border-radius:7px;line-height:32px;margin-bottom:2px}.wall-empty strong{font-weight:500;font-size:13px}.wall-empty small{font-size:11px;color:#75849a;text-align:center}
.wall-board-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 14px;color:#8b96a6;font-size:11px;line-height:1.6}.wall-board-footer>span:first-child{color:#65778f}
.wall-sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.wall-sidebar-collapsed>.wall-sidebar{display:none}.video-wall:fullscreen{padding:14px;background:#edf1f6;min-height:100vh;height:100vh}.video-wall:fullscreen .wall-grid{height:auto;min-height:0}.video-wall:fullscreen #wall-list{max-height:calc(100vh - 240px)}
.wall-dialog{border:1px solid #dce3ed;border-radius:10px;box-shadow:0 18px 70px #07192b45;padding:24px;max-width:min(440px,calc(100vw - 32px));color:#344153}.wall-dialog::backdrop{background:#0b172d66}.wall-dialog h3{margin:0 0 16px;font-size:18px;color:#23344c}.wall-dialog label{display:block;font-size:13px;margin:0 0 7px}.wall-dialog input{width:100%;font:inherit;border:1px solid #cfd8e6;border-radius:5px;padding:10px}.wall-dialog p{font-size:13px;line-height:1.8;color:#718097;overflow-wrap:anywhere}.wall-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
@media(min-width:1600px){.video-wall{grid-template-columns:310px minmax(0,1fr)}.wall-grid{min-height:580px}.wall-slot-title strong{font-size:14px}.wall-slot-title small{font-size:11px}.wall-slot-header button{font-size:11px;padding:4px 7px}}
@media(max-width:1150px){.video-wall{grid-template-columns:250px minmax(0,1fr)}.wall-project{display:none}.wall-toolbar-actions{gap:5px}.wall-layouts button{padding:6px}.wall-slot-header{gap:4px;padding:8px 6px}.wall-slot-header [data-wall-retry]{display:none}.wall-grid[data-layout="9"] .wall-slot-header [data-wall-zoom]{display:none}.wall-grid[data-layout="9"] .wall-slot-title small{display:none}}
@media(max-width:760px){#page.customer-wall-page{padding:10px}.video-wall{grid-template-columns:210px minmax(0,1fr);gap:9px}.wall-list-header{padding:13px 10px}.wall-tabs{margin:8px 8px}.wall-tabs button{font-size:12px}.wall-search-wrap{padding:0 8px}.wall-list-caption{padding-left:10px;padding-right:8px}.wall-device>button[data-wall-camera]{gap:6px;padding:10px 6px}.wall-camera-symbol{width:27px;height:27px;font-size:18px}.wall-toolbar{padding:9px}.wall-scheme-bar{padding:8px;gap:7px}.wall-grid{margin:0 8px;min-height:390px}.wall-grid[data-layout="9"] .wall-slot-header{padding:6px 4px}.wall-grid[data-layout="9"] .wall-slot-number{display:none}.wall-empty small{display:none}.wall-empty strong{font-size:11px}.wall-board-footer{padding:10px 8px}}
@media(max-width:560px){.video-wall{display:flex;flex-direction:column;min-height:0}.wall-sidebar{order:2}.wall-board{order:1}.wall-sidebar-collapsed>.wall-sidebar{display:none}.wall-toolbar-actions{width:100%;gap:5px}.wall-toolbar-actions>button{padding:6px 8px;font-size:12px}.wall-layouts{flex:1}.wall-layouts button{flex:1;padding:5px 4px;font-size:11px}.wall-layouts button span{display:none}.wall-title h2{font-size:15px}.wall-toolbar-actions #wall-fullscreen{margin-left:auto}.wall-scheme-bar select{max-width:170px}.wall-scheme-bar #wall-summary{flex:1 0 100%;margin-left:0}.wall-grid{height:390px;min-height:390px;flex:none}.wall-grid[data-layout="1"]{height:260px;min-height:260px}.wall-grid[data-layout="9"]{height:390px;min-height:390px}.wall-slot-header{padding:6px 5px;gap:4px}.wall-slot-title strong{font-size:11px}.wall-slot-title small{display:none}.wall-slot-header [data-wall-zoom]{display:none}.wall-grid[data-layout="9"] .wall-slot-title strong{font-size:10px}.wall-grid[data-layout="9"] .wall-slot-header [data-wall-close]{font-size:14px;padding:0 4px;min-height:22px}.wall-grid[data-layout="9"] .wall-empty strong{font-size:10px}.wall-empty>span{font-size:22px;width:30px;height:30px;line-height:27px}.wall-board-footer{font-size:10px}.wall-list-header{padding:12px 14px}#wall-list{max-height:330px;min-height:100px}.wall-device-info small,.wall-device-status{font-size:12px}.wall-device>button[data-wall-camera]{padding:12px 9px}.wall-list-footer{font-size:12px}.wall-tabs button{font-size:13px;min-height:42px}.wall-search-wrap input{font-size:16px}.video-wall:fullscreen{overflow:auto;display:flex}.video-wall:fullscreen .wall-grid{min-height:390px}}
/* Reset generic legacy header rules inside this page. */
.video-wall .wall-list-header,.video-wall .wall-toolbar{height:auto;background:#fff;color:#1b2637}
.video-wall .wall-slot-header{height:auto;color:#e1e8f5}
.video-wall header button{margin:0}
.video-wall .wall-stage .shanhe-media-stage [data-media-status][data-state=loading],.video-wall .wall-stage .shanhe-media-stage [data-media-status][data-state=error]{top:50%;left:12px;right:12px;max-width:none;max-height:calc(100% - 105px);transform:translateY(-50%);padding:9px 12px!important;overflow:auto;white-space:normal;text-align:center;line-height:1.65;font-size:11px!important;pointer-events:auto}
.video-wall .wall-stage .shanhe-media-stage [data-media-status][data-state=error]{border:0;background:transparent;color:#d5a9ad}
@media(max-width:560px){.video-wall .wall-stage .shanhe-media-stage [data-media-status][data-state=error],.video-wall .wall-stage .shanhe-media-stage [data-media-status][data-state=loading]{left:6px;right:6px;padding:2px!important;max-height:calc(100% - 62px);font-size:10px!important}.video-wall .wall-slot-header{min-height:27px}.video-wall .wall-stage .shanhe-media-controls [data-media-time]{display:none}.video-wall .wall-stage .shanhe-media-controls{left:4px;right:4px;gap:1px;bottom:4px;padding:2px}.video-wall .wall-stage .shanhe-media-controls button{flex-basis:24px;width:24px;height:24px}.video-wall .wall-stage .shanhe-media-controls button svg{width:17px;height:17px}}
.video-wall .wall-slot-header button.wall-slot-title{display:flex;align-items:flex-start;flex:1;min-width:0;min-height:0;text-align:left;border:0;border-radius:0;padding:0;background:transparent;color:#e1e8f5;white-space:normal}
.video-wall .wall-slot-header button.wall-slot-title:hover{background:transparent;color:#fff}
.video-wall .wall-slot-title strong,.video-wall .wall-slot-title small{max-width:100%}

/* Fullscreen is a presentation surface: one title above edge-to-edge monitoring windows. */
.video-wall>.wall-presentation-title{display:none}
.video-wall.wall-presentation{display:flex;flex-direction:column;gap:0;padding:0;width:100%;height:100vh;height:100dvh;min-height:0;overflow:hidden;background:#0a1321;color:#e7edf8}
.video-wall.wall-presentation>.wall-presentation-title{display:block;flex:none;margin:0;padding:17px 30px;max-height:25vh;overflow:auto;font-size:clamp(20px,2vw,32px);font-weight:500;line-height:1.4;text-align:center;color:#e7edf8;background:#0a1321;overflow-wrap:anywhere;letter-spacing:1px}
.video-wall.wall-presentation>.wall-sidebar,.video-wall.wall-presentation .wall-toolbar,.video-wall.wall-presentation .wall-scheme-bar,.video-wall.wall-presentation .wall-board-footer{display:none!important}
.video-wall.wall-presentation>.wall-board{flex:1;order:initial;min-height:0;width:100%;border:0;background:#0a1321;overflow:hidden}
.video-wall.wall-presentation .wall-grid{flex:1;height:auto;min-height:0;width:100%;margin:0;border:0}
@media(max-width:560px){.video-wall.wall-presentation>.wall-presentation-title{padding:12px 16px;letter-spacing:0;font-size:20px}}
