:root{font-family:Segoe UI,Microsoft YaHei UI,Microsoft YaHei,sans-serif;color:#e7eef1;background:#0d1720;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:1050px}button{font:inherit;cursor:pointer}.app-shell{height:100vh;min-height:760px;display:flex;flex-direction:column;padding:16px 22px 9px;background:radial-gradient(circle at 48% -15%,#1a3039 0,transparent 40%),#0d1720}.topbar{height:78px;flex:0 0 78px;display:flex;align-items:center;gap:22px;padding:0 22px;background:#14232e;border:1px solid #293b45;border-radius:8px;min-width:0}.brand-block{display:flex;align-items:center;gap:14px;flex:0 0 296px;min-width:0}.brand-symbol{width:42px;height:42px;border:1px solid #547f8a;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#1b3740}.brand-symbol span{display:block;width:23px;height:3px;border-radius:50%;border-top:2px solid #9dc9cc;transform:rotate(-7deg)}.brand-symbol span:nth-child(2){width:27px}.brand-symbol span:nth-child(3){width:19px}.eyebrow,.section-kicker{font-size:10px;letter-spacing:1.6px;color:#79919e;font-weight:600}h1,h2,h3,p{margin:0}h1{font-size:20px;line-height:1.35;font-weight:650;letter-spacing:.6px;margin-top:5px;white-space:nowrap}.header-divider{width:1px;height:38px;background:#334650;flex:0 0 1px}.mission-id{display:flex;flex-direction:column;gap:4px;min-width:179px;flex:0 0 179px}.mission-id span,.header-time span{color:#839aa6;font-size:11px}.mission-id strong{font-size:13px;letter-spacing:.3px;color:#d7e5e9;font-weight:600}.system-status{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1;min-width:0}.mode-switch{border:1px solid #476575;background:#203845;border-radius:5px;height:38px;padding:0 11px;display:flex;align-items:center;gap:8px;color:#e4eff1;white-space:nowrap}.mode-switch:hover{border-color:#8aabb4;background:#284653}.mode-switch .status-label{font-size:11px;color:#9bb4be}.mode-switch strong{font-size:12px}.switch-chevron{font-size:15px;color:#9db8c1;line-height:0}.top-status{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#91a5af;font-size:11px}.top-status strong{font-size:12px;font-weight:600;color:#d5e6e8}.status-dot{display:inline-block;width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#6faf95;box-shadow:0 0 0 3px #6faf951a}.header-time{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap;min-width:165px}.header-time strong{font-size:12px;font-weight:600;letter-spacing:.3px;color:#dbe6ea}.dashboard{display:grid;grid-template-rows:minmax(0,1fr) 224px;gap:14px;flex:1;min-height:0;margin-top:14px}.main-grid{display:grid;grid-template-columns:minmax(315px,348px) minmax(0,1fr) minmax(320px,348px);gap:14px;min-height:0}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.47fr) minmax(290px,.58fr) minmax(310px,.69fr);gap:14px;min-height:0}.panel{background:#15222c;border:1px solid #2c3e49;border-radius:7px;min-width:0;min-height:0;overflow:hidden;box-shadow:0 2px 12px #030b1012}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:14px 18px 12px;border-bottom:1px solid #2a3b46}.panel-heading h2{font-size:16px;line-height:1.2;font-weight:650;margin-top:5px;color:#e7f0f2;letter-spacing:.25px}.subtle-tag{font-size:11px;color:#a8bbc2;border:1px solid #3a515c;padding:5px 9px;border-radius:4px;white-space:nowrap}.cage-panel{display:flex;flex-direction:column}.cage-overview-top{display:flex;justify-content:space-between;align-items:flex-end;padding:20px 20px 0}.mini-label{display:block;font-size:11px;color:#8da3ad;line-height:1.3}.current-area{display:block;margin-top:4px;font-size:34px;line-height:1.1;font-weight:650;letter-spacing:-1px;color:#dbecee}.current-area small{font-size:14px;color:#788f9a;font-weight:500;letter-spacing:0}.coverage-block{text-align:right;padding-bottom:4px}.coverage-block strong{display:block;margin-top:6px;font-size:19px;font-weight:600;color:#b6d8d2}.cage-drawing-wrap{flex:1;display:flex;justify-content:center;align-items:center;min-height:0;padding:0 3px}.cage-drawing{display:block;width:min(100%,366px);height:100%;max-height:390px}.cage-segment{cursor:pointer;outline:none}.cage-segment:hover path,.cage-segment:focus-visible path{filter:brightness(1.3)}.cage-segment:focus-visible text{fill:#fff}.cage-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:9px 14px;padding:2px 13px 17px;color:#9aadb6;font-size:10px;white-space:nowrap}.cage-legend span{display:flex;align-items:center;gap:6px}.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px}.legend-swatch.done{background:#386e68}.legend-swatch.active{background:#548b9a}.legend-swatch.pending{background:#344653}.legend-point{width:10px;height:10px;border:2px solid #b1e1e3;border-radius:50%}.cage-footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #2b3d48;background:#172630}.cage-footer div{padding:14px 10px 15px;text-align:center;display:flex;flex-direction:column;gap:5px}.cage-footer div+div{border-left:1px solid #2b3d48}.cage-footer span{font-size:10px;color:#829aa6}.cage-footer strong{font-size:13px;color:#dce9ec;font-weight:600}.video-panel{display:flex;flex-direction:column}.video-heading{min-height:64px}.video-controls{display:flex;align-items:center;gap:13px}.live-indicator{display:inline-flex;align-items:center;gap:7px;color:#cce3e5;font-size:11px;font-weight:700;letter-spacing:1px}.live-indicator i,.small-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#79c49b}.icon-button{display:flex;align-items:center;gap:6px;height:29px;padding:0 9px;color:#bfced4;background:#213440;border:1px solid #47606b;border-radius:4px;font-size:11px}.icon-button:hover{background:#345261;color:#fff;border-color:#87a9b4}.icon-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.video-stage{flex:1;min-height:0;position:relative;overflow:hidden;background:#143441}.video-stage>img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.76) contrast(.94) brightness(.86)}.video-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,16,23,.46) 0,transparent 25%,transparent 68%,rgba(4,15,21,.7) 100%),linear-gradient(90deg,rgba(4,16,23,.15),transparent 55%);pointer-events:none}.video-corner{position:absolute;width:17px;height:17px;border-color:#daedf085;pointer-events:none}.video-corner.tl{top:18px;left:18px;border-top:1px solid;border-left:1px solid}.video-corner.tr{top:18px;right:18px;border-top:1px solid;border-right:1px solid}.video-corner.bl{bottom:18px;left:18px;border-bottom:1px solid;border-left:1px solid}.video-corner.br{bottom:18px;right:18px;border-bottom:1px solid;border-right:1px solid}.video-osd-top{position:absolute;top:30px;left:32px;display:flex;align-items:center;gap:10px;color:#e0edf0;font-size:11px;text-shadow:0 1px 3px #07171c}.camera-chip{display:inline-flex;align-items:center;background:#0a1920bd;border:1px solid rgba(185,211,217,.28);border-radius:3px;padding:5px 7px;letter-spacing:.5px;font-weight:650}.video-osd-bottom{position:absolute;left:29px;right:29px;bottom:28px;display:flex;justify-content:space-between;align-items:flex-end;color:#e8f2f3}.osd-main{display:flex;align-items:flex-end;gap:0;background:#08161dc2;border:1px solid rgba(179,209,215,.23);border-radius:4px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.osd-main>div{display:flex;flex-direction:column;gap:5px;min-width:99px;padding:10px 14px}.osd-main>div+div{border-left:1px solid rgba(185,211,217,.18)}.osd-main span{font-size:10px;color:#a9c0c7}.osd-main strong{font-size:18px;font-weight:600;white-space:nowrap}.osd-main .osd-active{font-size:15px;color:#a8dbca}.video-osd-bottom time{background:#08161dad;padding:8px 10px;font-size:11px;letter-spacing:.6px;border-radius:3px}.video-footer{height:34px;flex:0 0 34px;display:flex;justify-content:space-between;align-items:center;padding:0 17px;color:#8098a4;font-size:10px}.video-footer span:first-child{display:flex;align-items:center;gap:7px}.small-live-dot{width:5px;height:5px;background:#708d97}.equipment-panel{display:flex;flex-direction:column}.equipment-content{display:flex;flex-direction:column;flex:1;min-height:0}.equipment-group{display:flex;flex-direction:column;justify-content:center;flex:1;padding:11px 17px;min-height:0}.equipment-group+.equipment-group{border-top:1px solid #2a3b46}.equipment-group-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.equipment-group-head>div{display:flex;align-items:center;gap:8px}.equipment-group-head>div>span{color:#63808d;font-size:10px;font-weight:700;letter-spacing:.4px}.equipment-group h3{font-size:13px;font-weight:650;color:#e0eaec}.equipment-badge{display:flex;align-items:center;gap:7px;font-size:10px;color:#99bea9}.equipment-badge .status-dot{width:5px;height:5px;flex-basis:5px}.equipment-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.datum{display:flex;flex-direction:column;gap:5px;min-width:0}.datum span{color:#8299a4;font-size:10px;white-space:nowrap}.datum strong{color:#dbe8eb;font-size:14px;line-height:1.2;font-weight:600;white-space:nowrap}.datum .value-good{color:#a5d4be}.equipment-group:nth-child(1) .equipment-values,.equipment-group:nth-child(3) .equipment-values{grid-template-columns:repeat(3,minmax(0,1fr))}.bottom-heading{min-height:56px;padding:11px 16px 9px}.bottom-heading h2{font-size:15px;margin-top:4px}.stage-badge{color:#9ccbc5;background:#1f3c40;border:1px solid #416b6a;border-radius:4px;padding:6px 9px;font-size:11px;white-space:nowrap}.mission-panel{display:flex;flex-direction:column}.stage-stepper{display:flex;align-items:flex-start;justify-content:space-between;position:relative;margin:20px 22px 0}.stage-stepper:before{content:"";position:absolute;top:11px;left:5%;right:5%;height:1px;background:#4a5c66}.stage-stepper:after{content:"";position:absolute;top:11px;left:5%;width:52%;height:1px;background:#8cb6ad}.stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:45px;padding:0;border:0;background:transparent;color:#8296a0}.step-node{display:flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;background:#273945;border:1px solid #59717b;color:#afc0c6;font-size:9px;font-weight:700}.stage.complete .step-node{background:#547a6e;border-color:#7baa97;color:#eafff2;font-size:13px}.stage.current .step-node{background:#538a98;border-color:#b4d9dd;color:#fff;box-shadow:0 0 0 4px #619daa29}.step-name{font-size:11px;white-space:nowrap}.stage.complete .step-name,.stage.current .step-name{color:#d7e8e9}.stage.current .step-name{font-weight:700}.stage:hover .step-node{filter:brightness(1.2)}.stage:focus-visible{outline:1px solid #a9d9df;outline-offset:5px}.progress-section{padding:20px 22px 0;margin-top:auto;margin-bottom:19px}.progress-copy{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:9px}.progress-copy>div:first-child{display:flex;align-items:baseline;gap:11px}.progress-copy span,.remaining{font-size:11px;color:#8fa4ae}.progress-copy strong{font-size:19px;color:#d8e9e9;font-weight:650}.remaining strong{font-size:12px;margin-left:5px}.progress-track{height:8px;background:#2a3b45;border-radius:8px;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#5d9b91,#82bea9)}.alarm-panel{display:flex;flex-direction:column}.alarm-count{font-size:10px;color:#d7b985;border:1px solid #6d5a3f;background:#40382b;border-radius:4px;padding:5px 8px}.alarm-item{display:flex;gap:11px;padding:23px 17px 10px}.alarm-icon{width:20px;height:20px;flex:0 0 20px;border:1px solid #a68147;background:#6a5332;color:#f3d7a6;border-radius:50%;text-align:center;line-height:18px;font-size:12px;font-weight:800}.alarm-body{min-width:0;flex:1}.alarm-title-row{display:flex;justify-content:space-between;gap:7px;align-items:center}.alarm-title-row strong{font-size:13px;color:#e8ddc9;white-space:nowrap}.alarm-title-row time{font-size:10px;color:#8b9aa0}.alarm-body p{font-size:10px;color:#91a2a9;margin-top:9px;white-space:nowrap}.acknowledge{margin-top:17px;border:1px solid #7b6548;color:#dec69e;background:#43382d;border-radius:4px;font-size:10px;padding:5px 9px}.acknowledge:hover{filter:brightness(1.2)}.acknowledge.is-acknowledged{color:#a7b9b9;background:#22363b;border-color:#456067}.events-panel{display:flex;flex-direction:column}.event-list{list-style:none;margin:7px 0 0;padding:0 17px}.event-list li{display:grid;grid-template-columns:43px 12px 1fr;align-items:center;min-height:33px;gap:8px;font-size:11px;color:#b4c5cb}.event-list li+li{border-top:1px solid rgba(65,87,98,.45)}.event-list time{font-size:10px;color:#839aa5}.event-marker{width:6px;height:6px;border-radius:50%;background:#647e89;justify-self:center}.event-list li.active{color:#d9e9e9;font-weight:600}.event-list li.active .event-marker{background:#78b5a5}.app-footer{height:20px;flex:0 0 20px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 3px;color:#657d89;font-size:10px;letter-spacing:.2px;margin-top:8px}@media(max-width:1550px){.topbar{gap:14px;padding:0 15px}.brand-block{flex-basis:258px}.brand-symbol{width:36px;height:36px;flex:0 0 36px}h1{font-size:17px}.mission-id{min-width:156px;flex-basis:156px}.mission-id strong{font-size:11px}.system-status{gap:7px}.top-status{gap:4px;font-size:10px}.top-status strong{font-size:11px}.header-time{min-width:145px}.header-time strong{font-size:11px}.main-grid{grid-template-columns:minmax(290px,310px) minmax(0,1fr) minmax(290px,310px)}.bottom-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.65fr) minmax(280px,.75fr)}.equipment-group{padding:10px 12px}.datum strong{font-size:12px}}@media(max-width:1220px){.app-shell{height:auto;min-height:100vh}.topbar{height:auto;min-height:78px;flex-wrap:wrap;padding:13px 15px}.header-divider{display:none}.system-status{order:3;flex-basis:100%;justify-content:flex-start;gap:17px}.header-time{margin-left:auto}.dashboard{flex:auto;grid-template-rows:minmax(590px,1fr) 224px}.main-grid{grid-template-columns:280px minmax(0,1fr) 275px;gap:10px}.bottom-grid{gap:10px;grid-template-columns:minmax(0,1.2fr) minmax(230px,.6fr) minmax(240px,.7fr)}.app-shell{padding:10px}.panel-heading{padding-left:12px;padding-right:12px}.equipment-values{gap:3px}.datum strong{font-size:11px}.cage-legend{gap:7px}.stage-stepper{margin-left:14px;margin-right:14px}.progress-section{padding-left:14px;padding-right:14px}}@media(min-width:1800px){.app-shell{min-height:1080px}}.panel-heading h2,.bottom-heading h2{margin-top:0}.cage-metrics{display:grid;grid-template-columns:1fr 1fr 1.26fr;border-bottom:1px solid #2b3d48;padding:15px 13px 14px}.cage-metrics>div{display:flex;flex-direction:column;gap:7px;padding:0 10px;min-width:0}.cage-metrics>div+div{border-left:1px solid #30444e}.cage-metrics span{font-size:11px;color:#a0b4bd;white-space:nowrap}.cage-metrics strong{font-size:18px;line-height:1.15;font-weight:650;color:#e0ecee;white-space:nowrap}.cage-metrics small{font-size:12px;color:#a4b8bf;font-weight:500}.net-section{display:flex;flex-direction:column;flex:1;min-height:0;padding:15px 12px 12px}.net-section-heading{display:flex;align-items:baseline;justify-content:space-between;padding:0 7px 6px}.net-section-heading strong{font-size:12px;color:#d5e4e7;font-weight:600}.net-section-heading span{font-size:11px;color:#a4b8c0}.net-graphic{display:block;width:100%;height:100%;flex:1;min-height:0;max-height:325px}.net-zone{cursor:pointer;outline:none}.net-zone:hover rect:first-of-type,.net-zone:focus-visible rect:first-of-type{filter:brightness(1.22)}.net-legend{display:flex;justify-content:space-between;gap:5px;padding:8px 5px 0;color:#a6b9c0;font-size:11px;white-space:nowrap}.net-legend span{display:flex;align-items:center;gap:4px}.net-legend .legend-swatch,.net-legend .legend-point{width:9px;height:9px}.mini-locator{display:flex;align-items:center;gap:13px;flex:0 0 124px;min-height:124px;padding:5px 19px;border-top:1px solid #2b3d48;background:#172630}.mini-locator svg{display:block;width:110px;height:110px;flex:0 0 110px}.mini-locator-copy{display:flex;flex-direction:column;gap:10px;min-width:0}.mini-locator-copy strong{font-size:12px;color:#d5e4e7;font-weight:600;margin-bottom:2px}.mini-locator-copy span{display:flex;align-items:center;gap:7px;font-size:11px;color:#a6b9c0;white-space:nowrap}.locator-usv{display:inline-block;width:12px;height:6px;background:#9eb8be;clip-path:polygon(0 0,100% 0,76% 100%,22% 100%)}.cage-footer{grid-template-columns:repeat(2,1fr)}.cage-footer span{font-size:11px;color:#9eb3bc}.datum span{font-size:11px;color:#a0b3bc}.equipment-group h3{font-size:14px}.equipment-badge{font-size:11px}.alarm-body p,.event-list time{font-size:11px;color:#a4b6bd}.event-list li{font-size:12px}.video-footer{color:#98aeb7;font-size:11px}.eyebrow{font-size:11px;color:#91a7b0}.mission-id span,.header-time span{font-size:12px;color:#9aadb7}.top-status{font-size:12px;color:#a2b4bd}.mode-switch .status-label{font-size:12px}.net-section{padding:10px 8px 9px}.net-section-heading{padding:0 10px 5px}.net-section-heading strong{font-size:13px}.net-graphic{max-height:none}.net-legend{padding:4px 8px 0;color:#b3c3c9}.cage-bottom{display:grid;grid-template-columns:88px minmax(0,1fr) 83px;align-items:center;gap:6px;flex:0 0 99px;min-height:99px;padding:5px 10px;border-top:1px solid #2b3d48;background:#172630}.mini-locator-graphic{display:block;width:88px;height:88px}.cage-bottom .mini-locator-copy{gap:7px}.cage-bottom .mini-locator-copy strong{font-size:11px;margin-bottom:0}.cage-bottom .mini-locator-copy span{font-size:10px;gap:5px}.cage-bottom-metrics{display:flex;flex-direction:column;gap:9px;align-self:stretch;justify-content:center;padding-left:11px;border-left:1px solid #344a54}.cage-bottom-metrics div{display:flex;flex-direction:column;gap:3px}.cage-bottom-metrics span{font-size:10px;color:#a5b9c1;white-space:nowrap}.cage-bottom-metrics strong{font-size:12px;color:#e1ecee;font-weight:600;white-space:nowrap}.multi-camera-panel{display:flex;flex-direction:column}.camera-panel-heading{flex:0 0 64px;min-height:64px}.camera-toolbar{display:flex;align-items:center;gap:10px}.camera-layout-switch{display:flex;align-items:center;padding:2px;background:#10202a;border:1px solid #3b5360;border-radius:4px}.camera-layout-switch button{height:27px;padding:0 11px;background:transparent;color:#9fb4bf;border:0;border-radius:2px;font-size:11px;white-space:nowrap}.camera-layout-switch button[aria-pressed=true]{background:#2c4b58;color:#e0eef0}.camera-layout-switch button:hover{color:#fff}.camera-return{height:32px;padding:0 10px;color:#c5dcdf;border:1px solid #557782;border-radius:4px;background:#233c47;font-size:11px;white-space:nowrap}.camera-return:hover{background:#315360}.camera-toolbar .icon-button:disabled{opacity:.45;cursor:default}.camera-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;padding:8px;background:#101c24}.camera-grid.layout-single{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.camera-view{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #3b505b;border-radius:3px;background:#12262e}.camera-view[hidden]{display:none}.camera-view.is-selected{border-color:#779ca6}.camera-picture{position:relative;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#12262e;color:#dfedef;text-align:left;overflow:hidden}.camera-picture.is-expanded{cursor:default}.camera-picture:focus-visible{outline:2px solid #a1c8ce;outline-offset:-3px}.camera-media{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.76) contrast(.95) brightness(.84)}.camera-channel-bar{position:absolute;z-index:1;top:0;left:0;right:0;height:36px;padding:0 11px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#0c1b23e0;border-bottom:1px solid rgba(129,155,167,.22)}.camera-channel-title{display:flex;align-items:center;gap:9px;min-width:0}.camera-channel-title strong{font-size:11px;letter-spacing:.6px;color:#e1eff1;font-weight:650;white-space:nowrap}.camera-channel-title>span{font-size:12px;color:#c2d3d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-signal-control{display:flex;align-items:center;gap:5px;flex-shrink:0}.camera-signal-control>i{display:block;width:5px;height:5px;border-radius:50%;background:#7bae9b}.camera-signal-control.signal-offline>i,.camera-signal-control.signal-error>i{background:#d0ab70}.camera-signal-control.signal-unconnected>i{background:#8a9aa5}.camera-signal-control select{color-scheme:dark;width:68px;border:0;border-radius:2px;background:transparent;color:#b7cfc5;font:inherit;font-size:10px;padding:4px 0;cursor:pointer}.camera-signal-control select:hover{background:#263d47}.camera-signal-control.signal-offline select,.camera-signal-control.signal-error select{color:#e0c69c}.camera-signal-control.signal-unconnected select{color:#b0bfc7}.camera-channel-controls{display:flex;align-items:center;gap:8px;min-width:0}.camera-source-select{color-scheme:dark;max-width:110px;padding:3px;border:1px solid #4a6571;border-radius:3px;background:#1c333f;color:#d1e4e8;font:inherit;font-size:10px}.camera-usb-state{font-size:10px;color:#9bb0ba;white-space:nowrap}.camera-usb-state.signal-online{color:#a6d0bb}.camera-usb-state.signal-error{color:#e0c69c}.camera-usb-video{object-fit:contain;filter:none;background:#0a171e}.camera-usb-placeholder{position:absolute;inset:36px 0 0;height:auto;padding:10px;pointer-events:none}.camera-usb-placeholder strong{font-size:12px}.camera-usb-controls{position:relative;z-index:2;flex:0 1 auto;min-height:0;max-height:calc(100% - 100px);overflow:auto;padding:8px 10px;background:#0c1b23f0;border-top:1px solid #3b505b}.camera-usb-device-row{display:flex;gap:6px}.camera-usb-device-row select{flex:1;min-width:0;color-scheme:dark;background:#1c333f;color:#d1e4e8;border:1px solid #4a6571;border-radius:3px;font:inherit;font-size:11px;padding:4px}.camera-usb-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.camera-usb-controls button{padding:4px 7px;border:1px solid #557782;border-radius:3px;background:#233c47;color:#d1e4e8;font:inherit;font-size:11px;white-space:nowrap}.camera-usb-controls button:disabled{opacity:.45;cursor:default}.camera-usb-controls p{margin:5px 0 0;font-size:11px;line-height:1.4;color:#a8bdc6;overflow-wrap:anywhere}.camera-usb-controls p.camera-usb-error{color:#efbb8a}.camera-view.is-usb{display:flex;flex-direction:column}.camera-view.is-usb[hidden]{display:none}.is-usb .camera-picture{flex:1;min-height:64px;height:auto;padding-top:36px}.is-usb .camera-expand-hint{top:44px;bottom:auto}.camera-source-note{position:absolute;left:11px;bottom:10px;padding:3px 5px;border-radius:2px;background:#0a181e8c;font-size:10px;color:#b3c7ce;pointer-events:none}.camera-expand-hint{position:absolute;right:11px;bottom:10px;display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #6c8e99;border-radius:3px;background:#11232ce0;font-size:11px;color:#e4f1f2;opacity:0;pointer-events:none}.camera-expand-hint svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}.camera-picture:hover .camera-expand-hint,.camera-picture:focus-visible .camera-expand-hint{opacity:1}.camera-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;height:100%;padding:44px 20px 20px;background:#142832;color:#a8bdc6;text-align:center}.camera-placeholder-mark{font-size:30px;color:#5e7a89;line-height:1}.camera-placeholder strong{font-size:16px;font-weight:600;color:#c8d9df}.camera-placeholder>span:last-child{font-size:11px;color:#90a9b5}.camera-summary{flex:0 0 36px;height:36px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-top:1px solid #2b3e48;background:#172630}.camera-task-info{display:flex;align-items:center;gap:14px;font-size:11px;color:#9bb0ba;white-space:nowrap}.camera-task-info>span+span,.camera-task-info>.camera-action{border-left:1px solid #405661;padding-left:14px}.camera-task-info strong{font-size:12px;color:#e1ecee;font-weight:600;margin-left:4px}.camera-task-info>.camera-action{color:#a6d0bb;margin-left:0}.camera-summary-note{display:flex;align-items:center;gap:15px;color:#8fa6b1;font-size:10px;white-space:nowrap}.camera-summary-note time{font-size:11px;color:#b8cbd2;letter-spacing:.3px}@media(max-width:1550px){.camera-summary-note>span{display:none}.camera-toolbar{gap:7px}.camera-panel-heading{padding-left:12px;padding-right:12px}.camera-layout-switch button{padding:0 8px}.camera-task-info{gap:10px}.camera-task-info>span+span,.camera-task-info>.camera-action{padding-left:10px}}
