:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.app-container{max-width:800px;margin:0 auto;background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;overflow:hidden}.header{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;padding:30px;text-align:center}.header h1{font-size:2rem;margin-bottom:10px}.header p{opacity:.9}.form-container{padding:40px}.form-group{margin-bottom:30px}.form-group label{display:block;margin-bottom:10px;font-weight:600;color:#374151;font-size:1.1rem}.select-wrapper{position:relative}select{width:100%;padding:15px 20px;border:2px solid #e5e7eb;border-radius:12px;font-size:1rem;background:#fff;cursor:pointer;appearance:none;transition:all .3s ease}select:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.select-wrapper:after{content:"▼";position:absolute;right:20px;top:50%;transform:translateY(-50%);pointer-events:none;color:#6b7280}.file-upload{border:3px dashed #d1d5db;border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:all .3s ease;background:#f9fafb}.file-upload:hover{border-color:#4f46e5;background:#f0f4ff}.file-upload.dragover{border-color:#4f46e5;background:#eef2ff;transform:scale(1.02)}.file-upload input{display:none}.camera-controls{display:flex;gap:15px;justify-content:center;margin-top:15px;flex-wrap:wrap}.camera-btn,.gallery-btn{padding:12px 20px;border:2px solid #4f46e5;background:#fff;color:#4f46e5;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s ease;display:flex;align-items:center;gap:8px;font-size:.95rem}.camera-btn:hover,.gallery-btn:hover{background:#4f46e5;color:#fff;transform:translateY(-2px)}.video-container{position:relative;margin-top:20px;text-align:center;display:none}.video-container.active{display:block}.camera-video{width:100%;max-width:400px;border-radius:12px;background:#000}.capture-btn{background:#ef4444;color:#fff;border:none;padding:15px 25px;border-radius:50px;margin:15px 10px 0;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease}.capture-btn:hover{background:#dc2626;transform:scale(1.05)}.close-camera{background:#6b7280;color:#fff;border:none;padding:15px 25px;border-radius:50px;margin:15px 10px 0;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease}.close-camera:hover{background:#4b5563}.upload-icon{font-size:3rem;margin-bottom:15px;color:#9ca3af}.upload-text{font-size:1.1rem;color:#6b7280;margin-bottom:10px}.upload-hint{font-size:.9rem;color:#9ca3af}.image-preview{margin-top:20px;text-align:center}.preview-image{max-width:100%;max-height:300px;border-radius:12px;box-shadow:0 10px 25px #0000001a}.remove-image{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:6px;margin-top:10px;cursor:pointer;font-size:.9rem;transition:background .3s ease}.remove-image:hover{background:#dc2626}.submit-btn{width:100%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;padding:18px;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #4f46e54d}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.reset-btn{width:100%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;padding:18px;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.reset-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #4f46e54d}.reset-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading{display:inline-flex;align-items:center;gap:10px}.spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-card{margin-top:30px;padding:25px;border-radius:12px;animation:slideIn .5s ease}.result-card.success{background:#ecfdf5;border:2px solid #10b981}.result-card.error{background:#fef2f2;border:2px solid #ef4444}.result-card.warning{background:#fffbeb;border:2px solid #f59e0b}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;align-items:center;gap:10px;margin-bottom:15px;font-size:1.2rem;font-weight:600}.result-icon{font-size:1.5rem}.result-details{color:#374151;line-height:1.6}.environment-info{background:#f0f4ff;padding:20px;border-radius:8px;margin-top:15px}.environment-info h4{color:#4f46e5;margin-bottom:10px}.environments-list{margin-top:10px}.requirements-list{list-style:none;margin-top:0}.requirements-list li{padding:1px 0;color:#6b7280}.requirements-list li:before{content:"✓";color:#10b981;font-weight:700;margin-right:8px}.possible-list{list-style:none;margin-top:0}.possible-list li{padding:1px 0;color:#6b7280}.possible-list li:before{content:"✓";color:#b9b010;font-weight:700;margin-right:8px}.forbidden-list{list-style:none;margin-top:0}.forbidden-list li{padding:1px 0;color:#6b7280}.forbidden-list li:before{content:"✗";color:#ef4444;font-weight:700;margin-right:8px}@media (max-width: 640px){.app-container{margin:0;border-radius:0;min-height:100vh}.form-container{padding:20px}.header{padding:25px 20px}.header h1{font-size:1.4rem}.form-group{margin-bottom:25px}.file-upload{padding:30px 20px}.upload-icon{font-size:2.5rem}.upload-text{font-size:1rem}select{padding:12px 15px;font-size:16px}.submit-btn{padding:16px;font-size:1rem;position:sticky;bottom:20px}.camera-controls{gap:10px}.camera-btn,.gallery-btn{padding:10px 15px;font-size:.9rem;flex:1;min-width:0;justify-content:center}.preview-image{max-height:250px}.result-card{margin-top:20px;padding:20px}.environment-info{padding:15px}.requirements-list{font-size:.9rem}button,.file-upload,select{min-height:44px}}@media (max-width: 480px){.header h1{font-size:1.2rem}.header p{font-size:.9rem}.form-container{padding:15px}.camera-controls{flex-direction:column}.camera-btn,.gallery-btn{flex:none;width:100%}}@media (max-height: 500px) and (orientation: landscape){.header,.form-container{padding:15px}.form-group{margin-bottom:15px}}
