*,:before,:after{box-sizing:border-box}html,body,#root{color:#f8fafc;background-color:#0f172a;width:100%;height:100%;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}.dashboard-container{color:#f8fafc;box-sizing:border-box;background-color:#0b0f19;flex-direction:column;gap:12px;width:100vw;height:100vh;padding:16px;display:flex;overflow:hidden}.dashboard-header{background-color:#1e293b;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.dashboard-header .brand-section{align-items:center;gap:10px;display:flex}.dashboard-header .brand-section .brand-title{letter-spacing:1px;color:#38bdf8;margin:0;font-size:18px;font-weight:700}.dashboard-header .brand-section .brand-badge{color:#38bdf8;background-color:#38bdf81a;border:1px solid #38bdf833;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.dashboard-header .telemetry-bar{align-items:center;gap:16px;display:flex}.dashboard-header .telemetry-bar .telemetry-item{align-items:center;gap:6px;font-size:13px;display:flex}.dashboard-header .telemetry-bar .telemetry-item .telemetry-label{color:#94a3b8}.dashboard-header .telemetry-bar .telemetry-item .status-pill{align-items:center;gap:6px;font-weight:600;display:flex}.dashboard-header .telemetry-bar .telemetry-item .status-pill .dot{border-radius:50%;width:8px;height:8px}.dashboard-header .telemetry-bar .telemetry-item .status-pill.connected{color:#4ade80}.dashboard-header .telemetry-bar .telemetry-item .status-pill.connected .dot{background-color:#4ade80}.dashboard-header .telemetry-bar .telemetry-item .status-pill.disconnected{color:#f87171}.dashboard-header .telemetry-bar .telemetry-item .status-pill.disconnected .dot{background-color:#f87171}.dashboard-header .telemetry-bar .telemetry-item .url-text{color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dashboard-header .telemetry-bar .stream-status{letter-spacing:.5px;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:flex}.dashboard-header .telemetry-bar .stream-status .status-dot{border-radius:50%;width:6px;height:6px}.dashboard-header .telemetry-bar .stream-status.live{color:#f87171;background-color:#ef444426;border:1px solid #ef44444d}.dashboard-header .telemetry-bar .stream-status.live .status-dot{background-color:#ef4444}.dashboard-header .telemetry-bar .stream-status.standby{color:#94a3b8;background-color:#94a3b81a;border:1px solid #94a3b833}.dashboard-header .telemetry-bar .stream-status.standby .status-dot{background-color:#94a3b8}.stream-card{background-color:#1e293b;border-radius:8px;flex-direction:column;flex:1;padding:14px;display:flex;overflow:hidden}.stream-card .stream-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.stream-card .stream-header h3{color:#f1f5f9;margin:0;font-size:15px;font-weight:600}.stream-card .stream-header .snapshot-btn{color:#0f172a;cursor:pointer;background-color:#38bdf8;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:background-color .2s}.stream-card .stream-header .snapshot-btn:hover{background-color:#7dd3fc}.stream-card .video-container{background-color:#0b0f19;border-radius:6px;flex:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.stream-card .video-container .webrtc-video{object-fit:contain;width:100%;height:100%}.stream-card .video-container .webrtc-video.hidden{opacity:0;pointer-events:none;position:absolute}.stream-card .video-container .waiting-placeholder{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.stream-card .video-container .waiting-placeholder .spinner{border:3px solid #334155;border-top-color:#38bdf8;border-radius:50%;width:36px;height:36px;animation:1s linear infinite spin}.stream-card .video-container .waiting-placeholder .waiting-title{color:#94a3b8;margin:0;font-size:14px}.stream-card .video-container .waiting-placeholder .waiting-subtitle{color:#64748b;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.modal-overlay{z-index:1000;background-color:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background-color:#1e293b;border-radius:12px;flex-direction:column;width:90vw;max-width:1000px;max-height:90vh;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-header h3{color:#f1f5f9;margin:0;font-size:15px;font-weight:600}.modal-header .close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.modal-header .close-btn:hover{color:#f1f5f9}.canvas-wrapper{aspect-ratio:16/9;background-color:#0b0f19;width:100%;position:relative;overflow:hidden}.canvas-wrapper .sketch-canvas{width:100%;height:100%;position:absolute;inset:0}.floating-text-container{z-index:10;position:absolute;transform:translateY(-50%)}.floating-text-input{color:#ef4444;background-color:#0f172ad9;border:2px dashed #ef4444;border-radius:4px;min-width:150px;padding:4px 8px;font-size:22px;font-weight:700}.floating-text-input:focus{border-color:#f87171;outline:none}.floating-text-display{color:#ef4444;text-shadow:-1px -1px #fff,1px -1px #fff,-1px 1px #fff,1px 1px #fff;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;font-size:22px;font-weight:700}.floating-text-display:hover{outline:2px dashed #fff9}.modal-footer{border-top:1px solid #334155;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-footer .btn-secondary{color:#cbd5e1;cursor:pointer;background-color:#0000;border:1px solid #475569;border-radius:6px;padding:6px 14px;font-size:13px}.modal-footer .btn-secondary:hover{background-color:#334155}.modal-footer .btn-primary{color:#fff;cursor:pointer;background-color:#10b981;border:none;border-radius:6px;padding:6px 18px;font-size:13px;font-weight:600}.modal-footer .btn-primary:hover{background-color:#059669}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
