:root{--bg: #0f172a;--card: #1e293b;--border: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--primary: #667eea;--success: #10b981;--danger: #ef4444}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.loading-screen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:999}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-content p{margin-top:1rem;color:var(--text-muted)}.app-container{min-height:100vh;padding:1rem;max-width:1200px;margin:0 auto}.header{text-align:center;margin-bottom:2rem}.header-content{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:2rem 1.5rem;box-shadow:0 4px 12px #0000001a}.title{font-size:2.25rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;letter-spacing:-.5px}.subtitle{color:var(--text-muted);font-size:1.05rem}.main-content{display:grid;gap:1.5rem}@media (min-width: 768px){.main-content{grid-template-columns:1fr 1.5fr}}.instruction-card,.camera-card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;box-shadow:0 4px 12px #0000001a;transition:all .3s ease}.instruction-card:hover,.camera-card:hover{box-shadow:0 8px 24px #00000026;transform:translateY(-2px)}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;background:linear-gradient(135deg,var(--primary),#564de0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.instructions{display:flex;flex-direction:column;gap:.75rem}.instruction-item{display:flex;gap:.75rem;padding:.5rem;border-radius:.5rem;transition:background .2s ease}.instruction-item:hover{background:#667eea0d}.instruction-number{flex-shrink:0;width:28px;height:28px;background:linear-gradient(135deg,var(--primary),#564de0);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;box-shadow:0 2px 8px #667eea4d}.instruction-item p{flex:1;color:var(--text-muted)}.status-container{margin-top:1.5rem}.status-info{padding:.875rem 1rem;border-radius:.5rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .3s ease}.status-info span:first-child{font-size:1.25rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.status-waiting{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#fbbf24;box-shadow:0 2px 8px #fbbf2426}.status-detected{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981;box-shadow:0 2px 8px #10b98126}.camera-container{position:relative;width:100%;padding-bottom:75%;background:#000;border-radius:.5rem;overflow:hidden;margin-bottom:1rem}.camera-container video,.camera-container canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.controls{display:grid;gap:1rem}@media (min-width: 640px){.controls{grid-template-columns:1fr 1fr}}.btn{padding:.875rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s ease;box-shadow:0 4px 12px #00000026;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#fff0);opacity:0;transition:opacity .3s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn:hover:before{opacity:1}.btn:active{transform:translateY(0);box-shadow:0 2px 8px #0003}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-primary{background:linear-gradient(135deg,#667eea,#564de0);color:#fff}.btn-icon{font-size:1.25rem}.footer{margin-top:2rem;padding:1rem 0;text-align:center;color:var(--text-muted);font-size:.875rem;border-top:1px solid var(--border)}.modal{display:none;position:fixed;inset:0;background:#000c;backdrop-filter:blur(8px);z-index:1000;align-items:center;justify-content:center;padding:1rem;opacity:0;transition:opacity .3s ease}.modal.active{display:flex;animation:fadeIn .3s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:2.5rem;max-width:90%;width:450px;text-align:center;box-shadow:0 25px 50px -12px #00000080;transform:scale(.9);animation:scaleIn .3s ease forwards}@keyframes scaleIn{0%{transform:scale(.9) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.modal-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 1.5rem;font-weight:700;position:relative;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.success-icon{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 10px 30px #10b9814d}.error-icon{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 10px 30px #ef44444d}.modal-content h2{font-size:1.75rem;margin-bottom:1rem;font-weight:700;background:linear-gradient(135deg,var(--text),var(--text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-content p{color:var(--text-muted);margin-bottom:.5rem;line-height:1.6;font-size:1rem}.modal-content p:last-of-type{margin-bottom:2rem}.modal-content .btn{width:100%;padding:1rem 1.5rem;font-size:1.05rem;border-radius:.5rem;box-shadow:0 4px 12px #0003;transition:all .3s ease}.modal-content .btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.modal-content .btn:active{transform:translateY(0)}@media (max-width: 640px){.controls{grid-template-columns:1fr}.modal-content{padding:2rem 1.5rem;border-radius:.75rem}.modal-icon{width:70px;height:70px;font-size:2rem;margin-bottom:1.25rem}.modal-content h2{font-size:1.5rem}}
