:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0a0a0a;color:#fafafa}.shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.scanner{width:100%;max-width:40rem;display:flex;flex-direction:column;gap:1rem;align-items:center}.start-screen{text-align:center;padding:3rem 2rem;border:1px solid rgba(255,255,255,.1);border-radius:1rem;background:#ffffff05;width:100%}.scanner-icon{width:72px;height:72px;margin:0 auto 1.5rem;color:#00e5ff;animation:pulse 2s ease-in-out infinite}.scanner-icon svg{width:100%;height:100%}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}.start-screen h2{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;letter-spacing:-.03em}.start-screen p{color:#ffffff8c;margin-bottom:2rem}.loading{display:flex;align-items:center;justify-content:center;gap:.75rem;color:#ffffff8c;font-size:.9rem}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.15);border-top-color:#00e5ff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.start-btn{padding:.85rem 2.5rem;font-size:1rem;font-weight:600;border:none;border-radius:.5rem;background:#00e5ff;color:#000;cursor:pointer;transition:background .2s,transform .1s}.start-btn:hover{background:#33ebff;transform:translateY(-1px)}.start-btn:active{transform:translateY(0)}.viewport{position:relative;width:100%;border-radius:.75rem;overflow:hidden;border:2px solid rgba(0,229,255,.3);background:#000}.video{display:block;width:100%;height:auto}.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.scan-line{position:absolute;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#00e5ff,transparent);animation:scan 2.5s ease-in-out infinite;pointer-events:none}@keyframes scan{0%,to{top:0}50%{top:100%}}.detections-panel{width:100%;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;padding:1.25rem;background:#ffffff05}.detections-panel h3{margin:0 0 1rem;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffffb3;display:flex;align-items:center;gap:.5rem}.count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;font-size:.7rem;border-radius:11px;background:#00e5ff;color:#000;font-weight:700}.empty{color:#ffffff4d;font-size:.85rem;text-align:center;padding:1rem 0}.detections-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.detections-panel li{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.2rem .75rem;align-items:center}.det-class{font-weight:600;font-size:.95rem;text-transform:capitalize;grid-column:1;grid-row:1}.det-score{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:#00e5ff;grid-column:2;grid-row:1}.det-bar{grid-column:1 / -1;grid-row:2;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.det-fill{height:100%;background:linear-gradient(90deg,#00e5ff,#76ff03);border-radius:2px;transition:width .3s ease}.stop-btn{padding:.65rem 2rem;font-size:.9rem;font-weight:600;border:1px solid rgba(255,60,60,.4);border-radius:.5rem;background:#ff3c3c1a;color:#ff5252;cursor:pointer;transition:background .2s}.stop-btn:hover{background:#ff3c3c33}.scanner-error,.camera-error{padding:1.5rem;border:1px solid rgba(255,60,60,.3);border-radius:.75rem;background:#ff3c3c0d;text-align:center;color:#ff5252}.error-icon{width:40px;height:40px;margin:0 auto 1rem;border:2px solid #ff5252;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1.2rem}
