:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--primary-color: #10b981;--primary-dark: #059669;--danger-color: #ef4444;--danger-dark: #dc2626;--background-color: #111827;--card-bg: rgba(17, 24, 39, .7);--text-color: #f9fafb;--text-secondary: #9ca3af;--border-color: rgba(16, 185, 129, .2)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:linear-gradient(135deg,#111827,#000,#0f172a);color:var(--text-color);line-height:1.6;min-height:100vh;overflow-x:hidden;overflow-y:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:.01em}#root{width:100%;min-height:100vh;display:flex;justify-content:center}.app-container{width:100%;min-height:100vh;display:flex;flex-direction:column}.header{position:relative;z-index:10;padding:1rem;background-color:#0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;width:100%;gap:1rem}.logo-container{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.logo{width:2.25rem;height:2.25rem;background:linear-gradient(to right,#10b981,#059669);border-radius:.75rem;display:flex;align-items:center;justify-content:center;padding:.25rem}.subtitle{font-size:.75rem;color:var(--primary-color)}h1{font-size:1.25rem;font-weight:700;margin:0}h2{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}h3{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:var(--primary-color)}.status-indicators{flex-shrink:0}.confidence-slider-container{background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);padding:.5rem .75rem;border-radius:.5rem}.confidence-slider-container label{font-weight:500;color:var(--primary-color)}.confidence-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:#10b98133;border-radius:3px;outline:none}.confidence-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--primary-color);border-radius:50%;cursor:pointer;transition:all .2s ease}.confidence-slider::-webkit-slider-thumb:hover{background:var(--primary-dark);transform:scale(1.2)}.confidence-slider::-moz-range-thumb{width:14px;height:14px;background:var(--primary-color);border-radius:50%;cursor:pointer;border:none;transition:all .2s ease}.confidence-slider::-moz-range-thumb:hover{background:var(--primary-dark);transform:scale(1.2)}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:1rem;max-width:1200px;margin:0 auto;width:100%;min-height:60vh;position:relative}.card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:1rem;padding:2rem;box-shadow:0 10px 15px -3px #0000001a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;max-width:500px;width:100%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.loading-card{background-color:#111827b3;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:300px;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 25px 50px -12px #0006;z-index:20}.error-card{background-color:#ef444426;border-color:#ef444466;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:300px;min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 25px 50px -12px #0006;z-index:20}.start-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:320px;min-height:300px;padding:2.5rem 2rem;box-shadow:0 25px 50px -12px #0006;background-color:#111827d9;z-index:20;text-align:center;margin:0 auto;max-width:500px;width:100%}.detections-card{margin-top:1rem;background-color:#111827d9;padding:1.5rem;width:100%;max-width:1000px;border:1px solid var(--border-color);box-shadow:0 8px 15px -3px #0003;margin-left:auto;margin-right:auto;text-align:center}.button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 2rem;border:none;border-radius:.75rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 6px -1px #0003,0 2px 4px -1px #0000001a;min-width:150px;outline:none}button:focus,button:focus-visible,button:active{outline:none!important;box-shadow:none!important}.start-button{background:linear-gradient(to right,#10b981,#059669);color:#000;font-weight:600;padding:.75rem 2rem;margin-top:1rem}.start-button:hover{background:linear-gradient(to right,#059669,#047857)}.stop-button{background-color:#ef444433;border:1px solid rgba(239,68,68,.3);color:#ef4444}.stop-button:hover{background-color:#ef44444d}button:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.fps-badge{background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981}.processing-badge{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.detection-badge{background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981;margin-right:.5rem;margin-bottom:.5rem}.detection-badges{display:flex;flex-wrap:wrap}.camera-view{display:flex;flex-direction:column;justify-content:flex-start;width:100%}.camera-container{width:100%;max-width:1000px;position:relative;overflow:hidden;border-radius:1rem;box-shadow:0 10px 15px -3px #0003;background-color:#000;aspect-ratio:16/9;margin:0 auto;height:70vh;max-height:800px}.detection-canvas{width:100%;height:100%;display:block;object-fit:cover;position:absolute;top:0;left:0}.camera-controls{position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.icon{display:flex;align-items:center;justify-content:center}.icon-loader{width:1.5rem;height:1.5rem;border:2px solid rgba(16,185,129,.3);border-top-color:#10b981;border-radius:50%;animation:spin 1s linear infinite}.icon-camera:before{content:"📷";font-size:1.25rem}.icon-power:before{content:"⏻";font-size:1.25rem}.icon-zap:before{content:"⚡";font-size:1rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner{margin:0 auto 1.5rem}.loading-spinner .icon-loader{width:3rem;height:3rem;border-width:3px}.start-icon,.error-icon{width:4rem;height:4rem;background:linear-gradient(to right,#10b981,#059669);border-radius:1rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.error-icon{background:linear-gradient(to right,#ef4444,#dc2626)}.footer{padding:1rem;text-align:center;color:var(--text-secondary);font-size:.875rem;border-top:1px solid rgba(255,255,255,.1);width:100%;display:flex;justify-content:center;align-items:center}.footer p{max-width:800px;width:100%;margin:0 auto;text-align:center}@media (max-width: 768px){.header-content{flex-direction:row;align-items:center;justify-content:space-between;gap:1rem}.status-indicators{margin-top:0;align-items:stretch;display:flex;flex-direction:column;gap:.5rem}.confidence-slider-container{max-width:240px;margin:0 auto}.confidence-slider{width:100%}.camera-status-info{min-height:1.8em!important;overflow:visible!important;display:flex!important;align-items:center!important;justify-content:flex-end!important}.card{padding:1.75rem 1.5rem;min-width:90%;max-width:90%;margin:0 auto}h1,h2{font-size:1.125rem}.app-container{min-height:100vh;min-height:-webkit-fill-available;display:flex;flex-direction:column}.main-content{padding:.75rem;flex:1;display:flex;flex-direction:column;justify-content:flex-start}.camera-container{aspect-ratio:16/9;width:100%;max-width:100%;border-radius:.75rem;height:45vh;max-height:none;margin-bottom:.5rem}.detections-card{max-width:100%;border-radius:.75rem;margin-top:.75rem;margin-bottom:.75rem;padding:1.25rem 1rem}.detection-badges{display:flex;flex-wrap:wrap;justify-content:center}.detection-badge{margin:.25rem;font-size:.8rem;padding:.375rem .75rem}.loading-card,.error-card,.start-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:350px;z-index:30;text-align:center;margin:0 auto}.start-button{width:100%;max-width:250px}.camera-controls{bottom:1.5rem}.stop-button{padding:.75rem 2rem}}@media (max-width: 480px){.logo-container{gap:.5rem}.logo{width:2rem;height:2rem}h1{font-size:1rem}.subtitle{font-size:.7rem}.status-indicators{flex-shrink:0}.confidence-slider-container{padding:.4rem}.confidence-slider-container label{font-size:.8rem}.header{padding:.75rem .5rem}.camera-status-info{min-height:1.8em!important;overflow:visible!important;display:flex!important;align-items:center!important;justify-content:flex-end!important}.main-content{padding:.5rem}.camera-container{height:38vh;border-radius:.5rem}.button{padding:.625rem 1.5rem;font-size:.875rem}.detections-card{padding:1rem .75rem;margin-top:.5rem;border-radius:.5rem}.card{padding:1.5rem 1rem;border-radius:.75rem}.loading-spinner .icon-loader{width:2.5rem;height:2.5rem}.start-icon,.error-icon{width:3.5rem;height:3.5rem;margin-bottom:1rem}.footer{padding:.75rem .5rem;font-size:.75rem}.footer p{width:100%}}.button{min-height:44px;touch-action:manipulation}.camera-container{touch-action:none}@media (max-width: 380px){.header-content{flex-direction:column;align-items:center;gap:1rem}}
