.photo-capture{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px}.capture-button{background-color:#2c5282;color:#fff;border:none;padding:1.25rem 2.5rem;font-size:1.25rem;font-weight:600;border-radius:12px;cursor:pointer;min-height:56px;min-width:200px;box-shadow:0 4px 6px #0000001a;transition:transform .15s,box-shadow .15s}.capture-button:hover{transform:translateY(-2px);box-shadow:0 6px 8px #00000026}.capture-button:active{transform:translateY(0)}.error-container{text-align:center;padding:2rem}.error-text{color:#c53030;font-size:1rem;margin-bottom:1rem}.retry-button{background-color:#e2e8f0;color:#2d3748;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:8px;cursor:pointer}.camera-preview{display:flex;flex-direction:column;align-items:center;width:100%}.video-feed{width:100%;max-width:400px;min-height:300px;border-radius:12px;background-color:#1a202c;object-fit:cover}.capture-canvas{display:none}.camera-controls{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:2rem;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background-color:#f5f5f5;box-shadow:0 -2px 8px #0000001a;z-index:100}.cancel-button{background-color:#e2e8f0;color:#2d3748;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:8px;cursor:pointer;min-height:48px}.snap-button{width:72px;height:72px;border-radius:50%;background-color:#fff;border:4px solid #2c5282;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s}.snap-button:hover{transform:scale(1.05)}.snap-button:active{transform:scale(.95)}.snap-icon{width:56px;height:56px;border-radius:50%;background-color:#e53e3e}.photo-preview{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;gap:1.25rem}.image-container{width:100%;display:flex;justify-content:center;background-color:#1a202c;border-radius:12px;overflow:hidden;padding:.5rem}.preview-image{max-width:100%;max-height:300px;border-radius:8px;object-fit:contain}.caption-section{width:100%;display:flex;flex-direction:column;gap:.5rem}.caption-label{font-size:1rem;font-weight:600;color:#2d3748}.caption-input{width:100%;padding:.875rem;font-size:1rem;font-family:inherit;border:2px solid #e2e8f0;border-radius:8px;resize:none;transition:border-color .2s}.caption-input:focus{outline:none;border-color:#2c5282}.caption-input::placeholder{color:#a0aec0}.char-counter{font-size:.875rem;color:#718096;text-align:right}.char-counter[data-warning=true]{color:#dd6b20}.retake-button{background-color:transparent;color:#4a5568;border:2px solid #e2e8f0;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:8px;cursor:pointer;transition:border-color .2s,color .2s}.retake-button:hover{border-color:#cbd5e0;color:#2d3748}.bottom-toolbar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:2rem;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background-color:#303030;box-shadow:0 -2px 8px #0000001a;z-index:100}.toolbar-secondary-button{background-color:#e2e8f0;color:#2d3748;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:8px;cursor:pointer;min-height:48px}.toolbar-primary-button{background-color:#38a169;color:#fff;border:none;padding:.75rem 2rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;min-height:48px;box-shadow:0 4px 6px #0000001a;transition:transform .15s,box-shadow .15s,background-color .2s}.toolbar-primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 8px #00000026;background-color:#2f855a}.toolbar-primary-button:active:not(:disabled){transform:translateY(0)}.toolbar-primary-button:disabled{background-color:#a0aec0;cursor:not-allowed;box-shadow:none}.toolbar-snap-button{width:72px;height:72px;border-radius:50%;background-color:#fff;border:4px solid #2c5282;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s}.toolbar-snap-button:hover{transform:scale(1.05)}.toolbar-snap-button:active{transform:scale(.95)}.toolbar-snap-button:disabled{opacity:.5;cursor:not-allowed}.toolbar-snap-icon{width:56px;height:56px;border-radius:50%;background-color:#e53e3e}.toolbar-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toolbar-loading{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.toast-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;animation:toastIn .3s ease-out}.toast{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 8px 24px #0003;min-width:250px;text-align:center}.toast-icon{font-size:2.5rem}.toast p{font-size:1.125rem;font-weight:600;margin:0}.toast-success{background-color:#c6f6d5;color:#276749}.toast-error{background-color:#fed7d7;color:#c53030}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.toast-exit{animation:toastOut .3s ease-in forwards}.app{min-height:100vh;display:flex;flex-direction:column;background-color:#f5f5f5}.app-header{background-color:#2c5282;color:#fff;padding:1rem;text-align:center;box-shadow:0 2px 4px #0000001a}.app-header h1{font-size:1.5rem;font-weight:600}.app-main{flex:1;display:flex;flex-direction:column;align-items:center;padding:1.5rem;padding-bottom:100px;gap:1.5rem}.success-message{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;background-color:#c6f6d5;border-radius:12px;color:#276749;animation:fadeIn .3s ease-out}.success-icon{font-size:3rem}.success-message p{font-size:1.25rem;font-weight:600}.error-message{padding:1rem;background-color:#fed7d7;border-radius:8px;color:#c53030;text-align:center;max-width:400px;width:100%;animation:shake .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}
