:root{--primary: #2563eb;--bg: #ffffff;--text: #1e293b;--glass: rgba(255, 255, 255, .8);--border: rgba(226, 232, 240, .8);--shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,sans-serif;background:radial-gradient(circle at top left,#f8fafc,#f1f5f9);color:var(--text);min-height:100vh;overflow-x:hidden}.app-container{padding:40px;max-width:1200px;margin:0 auto}.main-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.app-header{text-align:center;margin-bottom:40px}.app-header h1{font-size:3rem;font-weight:700;letter-spacing:-.02em;margin:0}.app-header .subtitle{color:#64748b;font-size:1.1rem;margin-top:4px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:14px 24px;border-radius:12px;border:none;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s;width:100%;display:flex;align-items:center;justify-content:center;gap:10px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px -5px #2563eb66}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.mode-tabs{display:flex;gap:8px;margin-bottom:20px;width:100%}.mode-tab{flex:1;padding:10px 6px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s;font-size:.85rem;text-align:center}.mode-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 10px -2px #2563eb4d}.mode-tab:disabled{opacity:.4;cursor:not-allowed}.faucet-count{font-size:4.5rem;font-weight:800;color:#1e293b;line-height:1;display:block}.badge{background:#dbeafe;color:#1e40af;padding:6px 14px;border-radius:999px;font-weight:600;font-size:.8rem;box-shadow:0 4px 6px -1px #2563eb1a;white-space:nowrap}.toggle-btn{flex:1;padding:10px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s}.toggle-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6;box-shadow:0 4px 10px -2px #2563eb4d}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.webcam-container{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#000}.webcam-container video,.webcam-container canvas{width:100%;display:block;border-radius:12px}.webcam-overlay-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.webcam-controls{display:flex;gap:10px;margin-top:15px;width:100%}.webcam-controls button{flex:1;padding:12px;border-radius:10px;border:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-start-cam{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-start-cam:hover{transform:translateY(-1px);box-shadow:0 6px 15px -4px #10b98166}.btn-stop-cam{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-stop-cam:hover{transform:translateY(-1px);box-shadow:0 6px 15px -4px #ef444466}.live-badge{position:absolute;top:12px;right:12px;background:#ef4444e6;color:#fff;padding:4px 12px;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px;z-index:5;animation:pulse-badge 1.5s ease-in-out infinite}.live-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:blink 1s step-end infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.upload-area{border:2px dashed #cbd5e1;border-radius:16px;padding:30px;cursor:pointer;position:relative;transition:all .3s ease;text-align:center}.upload-area:hover{border-color:var(--primary);background:#2563eb08}.upload-area.has-image{background:#f8fafc}.vision-display{width:100%;min-height:250px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:16px;border:1px solid #e2e8f0;position:relative;overflow:hidden}.inspector-section{margin-top:30px;padding:25px}.inspector-pre{background-color:#1e293b;color:#f8fafc;padding:20px;border-radius:12px;font-size:.75rem;overflow-x:auto;max-height:350px;line-height:1.5}.app-footer{margin-top:60px;text-align:center;color:#94a3b8;font-size:.85rem;padding-bottom:30px}@media (max-width: 900px){.app-container{padding:24px 20px}.main-grid{grid-template-columns:1fr;gap:24px}.app-header{margin-bottom:24px}.app-header h1{font-size:2.2rem}.faucet-count{font-size:3.5rem}}@media (max-width: 520px){.app-container{padding:16px 12px}.app-header h1{font-size:1.6rem}.app-header .subtitle{font-size:.85rem}.glass-card{border-radius:16px;padding:16px!important}.faucet-count{font-size:2.8rem}.badge{font-size:.65rem;padding:4px 10px}.mode-tabs{gap:6px}.mode-tab{font-size:.72rem;padding:8px 4px}.btn-primary{padding:12px 16px;font-size:.9rem}.upload-area{padding:20px 12px}.webcam-controls{flex-direction:column}.inspector-pre{font-size:.65rem;padding:12px}.app-footer{margin-top:30px;font-size:.75rem}}
