.dashboard-container{color:#fff;background-color:#111827;min-height:100vh;padding:40px;font-family:sans-serif}.dashboard-container h1{color:#38bdf8}.status-card{background-color:#1f2937;border-radius:8px;margin-bottom:20px;padding:15px}.status-card .status-text{font-weight:700}.status-card .status-text.connected{color:#4ade80}.status-card .status-text.disconnected{color:#f87171}.status-card .api-url{color:#9ca3af;margin:5px 0 0;font-size:14px}.stream-card{background-color:#1f2937;border-radius:8px;min-height:300px;padding:20px}.stream-card h3{margin-top:0}.stream-card .video-container{aspect-ratio:16/9;background-color:#111827;border-radius:5px;width:100%;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}.stream-card .video-container .waiting-placeholder{flex-direction:column;align-items:center;gap:15px;display:flex}.stream-card .video-container .waiting-placeholder .waiting-text{color:#9ca3af;font-style:italic}.stream-card .video-container .waiting-placeholder .spinner{border:4px solid #1f2937;border-top-color:#38bdf8;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stream-header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.stream-header h3{margin:0}.stream-header .snapshot-btn{color:#0f172a;cursor:pointer;background-color:#38bdf8;border:none;border-radius:6px;padding:8px 16px;font-weight:700;transition:background-color .2s}.stream-header .snapshot-btn:hover{background-color:#7dd3fc}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:#1f2937;border-radius:12px;flex-direction:column;width:90vw;max-width:1000px;max-height:90vh;display:flex;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d}.modal-header{border-bottom:1px solid #374151;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.modal-header h3{color:#f3f4f6;margin:0}.modal-header .close-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;font-size:20px}.modal-header .close-btn:hover{color:#f3f4f6}.canvas-wrapper{aspect-ratio:16/9;background-color:#111827;width:100%;position:relative;overflow:hidden}.canvas-wrapper .sketch-canvas{width:100%;height:100%;position:absolute;top:0;left:0}.floating-text-container{z-index:10;position:absolute;transform:translateY(-50%)}.floating-text-input{color:#ef4444;background:#111827cc;border:2px dashed #38bdf8;border-radius:4px;min-width:150px;padding:4px 8px;font-size:24px;font-weight:700}.floating-text-input:focus{border-color:#fca5a5;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:24px;font-weight:700}.floating-text-display:hover{outline:2px dashed #ffffff80}.modal-footer{border-top:1px solid #374151;justify-content:space-between;padding:15px 20px;display:flex}.modal-footer .btn-secondary{color:#9ca3af;cursor:pointer;background-color:#0000;border:1px solid #4b5563;border-radius:6px;padding:8px 16px}.modal-footer .btn-secondary:hover{color:#f3f4f6;background-color:#374151}.modal-footer .btn-primary{color:#fff;cursor:pointer;background-color:#10b981;border:none;border-radius:6px;padding:8px 24px;font-weight:700}.modal-footer .btn-primary:hover{background-color:#34d399}
