*{box-sizing:border-box;margin:0;padding:0}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-color: #34C35A;--primary-dark: #2BAF4D;--primary-light: #E8F8ED;--color-text-primary: #1C1C1E;--color-text-secondary: #6C6C70;--color-text-placeholder: #AEAEB2;--color-border: #E5E5EA;--color-surface: #F8F8F8;--color-entry-bg: #EDF2FA;--color-error: #FF3B30;--color-separator: #F2F2F7}body{margin:0;padding:0;width:100%;min-height:100vh;overflow-x:hidden;background:#fff;color:var(--color-text-primary)}#root{width:100%;min-height:100vh}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.pin-entry{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(#c7dbf7,#fff);position:relative;overflow:hidden}.pin-bg-icons{position:absolute;inset:0;pointer-events:none;z-index:0}.bg-icon{position:absolute;filter:brightness(0) invert(1);opacity:.18}.bg-icon-bottle{width:200px;top:-30px;left:15%;transform:translate(-20%) rotate(-30deg)}.bg-icon-box{width:180px;top:260px;left:-30px;transform:rotate(-20deg)}.bg-icon-bag{width:170px;top:180px;right:-20px;transform:rotate(15deg)}.bg-icon-bio{width:190px;bottom:220px;right:-10px;transform:rotate(-10deg)}.pin-content{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto}.pin-top{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem 1rem;gap:.75rem}.sorto-logo{height:48px;width:auto}.platform-subtitle{color:var(--color-text-secondary);font-size:.72rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;margin:0;text-align:center}.pin-middle{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.5rem 2rem 2rem}.pin-prompt{color:var(--color-text-primary);font-size:1rem;font-weight:500;margin:0;text-align:center}.pin-dots{display:flex;gap:18px;justify-content:center}.pin-dot{width:16px;height:16px;border-radius:50%;background:#c7c7cc;transition:background .15s,transform .1s}.pin-dot.filled{background:var(--primary-color);transform:scale(1.1)}.pin-dot.error{background:var(--color-error)}.error-message{color:var(--color-error);font-size:.85rem;text-align:center;margin:0;white-space:pre-line}.pin-keyboard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:.5rem 1rem 2.5rem}.key-btn{background:#fff;border:none;border-radius:12px;height:70px;font-size:1.6rem;font-weight:400;color:var(--color-text-primary);cursor:pointer;transition:background .1s,transform .1s;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000014}.key-btn:active{background:#e5e5ea;transform:scale(.97)}.key-btn:disabled{opacity:.35;cursor:not-allowed}.key-empty{height:70px}.key-back{background:transparent;box-shadow:none;color:var(--color-text-primary)}.key-back:active{background:#0000000f}.pin-loading{position:absolute;inset:0;background:#edf2fad9;display:flex;align-items:center;justify-content:center;z-index:10}.spinner{width:30px;height:30px;border:3px solid rgba(0,0,0,.12);border-top-color:var(--color-text-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.pin-dots.shake{animation:shake .45s ease-in-out}.device-info{position:absolute;bottom:8px;right:12px;font-size:.55rem;color:#c7c7cc;font-family:monospace}.qr-scanner{display:flex;flex-direction:column;min-height:100vh;background:#fff}.scanner-container{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;max-width:480px;margin:0 auto}.qr-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 2rem 1rem;gap:1.75rem;text-align:center}.qr-icon-circle{width:120px;height:120px;background:var(--color-entry-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.qr-title{font-size:1.35rem;font-weight:700;color:var(--color-text-primary);line-height:1.4;margin:0;max-width:260px}.qr-scan-error{color:var(--color-error);font-size:.9rem;background:#fff0ef;padding:.75rem 1rem;border-radius:10px;width:100%;text-align:center}#qr-reader{border-radius:12px;overflow:hidden;width:100%}#qr-reader video{width:100%!important;height:auto!important}.error-message{color:var(--color-error);font-size:.875rem;padding:.75rem 1rem;background:#fff0ef;border-radius:10px;width:100%;text-align:center}.qr-actions{width:100%;padding:1rem 1.5rem 2.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.scan-btn{width:100%;background:var(--primary-color);color:#fff;padding:1rem 2rem;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:.6rem}.scan-btn:hover{background:var(--primary-dark)}.scan-btn:active{transform:scale(.99)}.cancel-link{background:none;border:none;color:var(--color-text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;padding:.4rem 1rem}.cancel-link:hover{color:var(--color-text-primary)}.camera{display:flex;flex-direction:column;min-height:100vh;background:#1c1c1e;position:relative}.camera-header{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;background:#1c1c1e;z-index:10}.back-btn{background:none;border:none;color:#fff;padding:.25rem;cursor:pointer;display:flex;align-items:center;flex-shrink:0}.camera-header-info{display:flex;flex-direction:column;gap:.15rem}.camera-header-title{font-size:1rem;font-weight:600;color:#fff;margin:0}.camera-header-subtitle{font-size:.8rem;color:#fff9;margin:0}.camera-body{flex:1;position:relative;display:flex;flex-direction:column}.webcam-wrapper,.preview-wrapper{flex:1;position:relative;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.webcam,.preview-img{width:100%;height:100%;object-fit:cover;display:block}.capture-btn{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:#ffffff26;border:3px solid rgba(255,255,255,.8);width:68px;height:68px;border-radius:50%;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.capture-btn:after{content:"";width:52px;height:52px;background:#fff;border-radius:50%}.capture-btn:active{background:#ffffff4d}.camera-action-bar{display:flex;gap:.75rem;padding:1rem 1.25rem 2rem;background:#1c1c1e}.retake-btn{flex:1;padding:.875rem;background:transparent;border:1.5px solid rgba(255,255,255,.5);border-radius:12px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:border-color .2s}.retake-btn:hover{border-color:#fffc}.confirm-btn{flex:1;padding:.875rem;background:var(--primary-color);border:none;border-radius:12px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:background .2s}.confirm-btn:hover{background:var(--primary-dark)}.error-message{color:var(--color-error);background:#ff3b3026;padding:.75rem 1rem;border-radius:10px;font-size:.875rem;margin:.5rem 1.25rem;text-align:center}.skip-btn-camera{position:absolute;bottom:.5rem;right:1rem;background:none;border:none;color:#ffffff4d;font-size:.7rem;cursor:pointer;padding:.25rem}.summary{display:flex;flex-direction:column;min-height:100vh;background:#fff}.summary-container{display:flex;flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto}.summary-header{display:flex;align-items:center;padding:1rem 1.25rem 0}.back-btn{background:none;border:none;color:var(--color-text-primary);padding:.25rem;cursor:pointer;display:flex;align-items:center;margin-right:.5rem}.summary-category-info{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem 0}.summary-icon-box{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.summary-icon-box img{width:28px;height:28px;object-fit:contain}.summary-category-text{display:flex;flex-direction:column;gap:.15rem}.summary-category-name{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0}.summary-category-status{font-size:.8rem;color:var(--color-text-secondary);margin:0}.summary-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.25rem 1rem;gap:1.5rem}.scales-icon{width:120px;height:120px;opacity:.6}.weight-title{font-size:1.2rem;font-weight:700;color:var(--color-text-primary);margin:0;text-align:center}.weight-input-wrapper{display:flex;align-items:center;justify-content:center;gap:.25rem;border:1.5px solid var(--color-border);border-radius:14px;padding:.875rem 1.5rem;background:#fff;width:100%}.weight-input{border:none;background:transparent;font-size:2rem;font-weight:300;text-align:right;color:var(--color-text-placeholder);outline:none;width:6ch;min-width:2ch}.weight-input:not(:placeholder-shown){color:var(--color-text-primary)}.weight-unit{font-size:1.1rem;color:var(--color-text-secondary);font-weight:400}.summary-actions{padding:1rem 1.25rem 2.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.submit-btn{width:100%;padding:1rem;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.submit-btn:not(:disabled){background:var(--primary-color);color:#fff}.submit-btn:not(:disabled):hover{background:var(--primary-dark)}.submit-btn:not(:disabled):active{transform:scale(.99)}.submit-btn:disabled{background:var(--color-surface);color:var(--color-text-placeholder);cursor:not-allowed}.cancel-link{background:none;border:none;color:var(--color-error);font-size:.95rem;font-weight:500;cursor:pointer;padding:.25rem 1rem}.cancel-link:hover{opacity:.8}.form-submitted{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#fff;padding:1.5rem}.submitted-container{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center}.waste-type-submitted{display:flex;align-items:center;gap:.875rem;background:var(--color-surface);padding:.875rem 1.5rem;border-radius:14px;width:100%}.waste-icon-submitted{flex-shrink:0;width:44px;height:44px;object-fit:contain}.waste-type-name-submitted{font-size:1rem;font-weight:600;color:var(--color-text-primary);text-align:left;margin:0}.success-icon{width:80px;height:80px;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:scaleIn .4s ease-out}.submitted-container h1{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0}.session-complete{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#fff}.complete-container{text-align:center;padding:2rem 1.5rem;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.success-icon{width:100px;height:100px;margin:0 auto;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:scaleIn .4s ease-out}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.complete-container h1{font-size:1.6rem;font-weight:700;color:var(--color-text-primary);margin:0}.success-message{color:var(--color-text-secondary);font-size:.95rem;margin:0}.waste-type-selection{display:flex;flex-direction:column;min-height:100vh;background:#f2f2f7}.waste-selection-container{display:flex;flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto}.location-header{padding:1.25rem 1.25rem 0}.location-company{font-size:1.1rem;font-weight:700;color:var(--color-text-primary);margin:0 0 .2rem}.location-detail{display:flex;align-items:center;gap:.35rem;color:var(--color-text-secondary);font-size:.82rem;margin:0}.progress-section{padding:.75rem 1.25rem 0}.progress-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.progress-text,.progress-percent{font-size:.8rem;color:var(--color-text-secondary);margin:0}.progress-bar-track{width:100%;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary-color);border-radius:2px;transition:width .4s ease}.waste-types-list{flex:1;padding:.75rem 1rem 0;display:flex;flex-direction:column;gap:.5rem}.waste-type-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:#fff;border-radius:14px;box-shadow:0 1px 3px #00000012;cursor:pointer;transition:opacity .15s}.waste-type-card:active{opacity:.7}.waste-icon-box{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.waste-icon-box img{width:28px;height:28px;object-fit:contain}.waste-card-name{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin:0}.tag-tuscias{font-size:.72rem;font-weight:600;color:#5b7fd4;background:#eef2ff;border-radius:20px;padding:.15rem .55rem;white-space:nowrap}.tag-atlikta{font-size:.72rem;font-weight:600;color:var(--primary-dark);background:var(--primary-light);border-radius:20px;padding:.15rem .55rem;white-space:nowrap}.waste-card-weight{font-size:.8rem;color:var(--color-text-secondary);margin:.1rem 0 0;font-weight:400}.waste-card-right{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.waste-card-amount{font-size:.8rem;color:var(--color-text-secondary)}.chevron{color:#c7c7cc}.check-icon{color:var(--primary-color)}.action-bar{padding:1rem 1.25rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.875rem;border-top:1px solid var(--color-separator);background:#f2f2f7}.bottom-sheet-overlay{position:fixed;inset:0;background:#0006;z-index:100;display:flex;align-items:flex-end;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bottom-sheet{width:100%;max-width:480px;margin:0 auto;background:#fff;border-radius:20px 20px 0 0;padding:.75rem 1.25rem 2.5rem;display:flex;flex-direction:column;gap:.875rem;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{width:36px;height:4px;background:#d1d1d6;border-radius:2px;margin:0 auto .5rem}.bottom-sheet-type{display:flex;align-items:center;gap:.875rem;padding:.5rem 0 .75rem;border-bottom:1px solid var(--color-separator)}.bottom-sheet-type-info p{margin:0}.bottom-sheet-type-name{font-size:1rem;font-weight:600;color:var(--color-text-primary)}.bottom-sheet-type-status{font-size:.8rem;color:var(--color-text-secondary)}.sheet-photo-btn{width:100%;padding:1rem;background:var(--primary-color);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.sheet-photo-btn:hover{background:var(--primary-dark)}.sheet-empty-btn{width:100%;padding:1rem;background:#fff;color:var(--color-text-primary);border:1.5px solid var(--color-border);border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.sheet-empty-btn:hover{background:var(--color-surface)}.sheet-cancel-btn{background:none;border:none;color:var(--color-text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;padding:.25rem;text-align:center;width:100%}.finish-btn{width:100%;padding:1rem;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.finish-btn.enabled{background:var(--primary-color);color:#fff}.finish-btn.enabled:hover{background:var(--primary-dark)}.finish-btn.enabled:active{transform:scale(.99)}.finish-btn.disabled{background:var(--color-surface);color:var(--color-text-placeholder);cursor:not-allowed}.reject-link{background:none;border:none;color:var(--color-error);font-size:.95rem;font-weight:500;cursor:pointer;padding:.25rem 1rem}.reject-link:hover{opacity:.8}.confirm-dialog-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.confirm-dialog{background:#fff;padding:1.75rem 1.5rem;border-radius:18px;max-width:340px;width:100%;box-shadow:0 8px 32px #0000002e;text-align:center}.confirm-dialog p{margin:0 0 1.5rem;font-size:1rem;font-weight:600;color:var(--color-text-primary);line-height:1.4}.dialog-buttons{display:flex;gap:.75rem}.confirm-yes-btn,.confirm-no-btn{flex:1;padding:.875rem;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.confirm-yes-btn{background:var(--primary-color);color:#fff}.confirm-yes-btn:hover{background:var(--primary-dark)}.confirm-no-btn{background:var(--color-surface);color:var(--color-text-primary)}.confirm-no-btn:hover{background:var(--color-border)}.screensaver{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(160deg,#c7dbf7,#fff);position:relative;overflow:hidden;text-align:center;padding:2rem}.ss-bg-icons{position:absolute;inset:0;pointer-events:none;z-index:0}.ss-bg-icon{position:absolute;filter:brightness(0) invert(1);opacity:.14}.ss-bg-icon:nth-child(1){width:200px;top:-30px;left:15%;transform:rotate(-30deg);animation:ssFloat 7s ease-in-out infinite}.ss-bg-icon:nth-child(2){width:170px;top:20%;right:-20px;transform:rotate(15deg);animation:ssFloat 9s ease-in-out infinite 1s}.ss-bg-icon:nth-child(3){width:160px;bottom:15%;left:-20px;transform:rotate(-15deg);animation:ssFloat 8s ease-in-out infinite 2s}.ss-bg-icon:nth-child(4){width:180px;bottom:-20px;right:10%;transform:rotate(20deg);animation:ssFloat 6s ease-in-out infinite .5s}.ss-bg-icon:nth-child(5){width:140px;top:45%;left:-10px;transform:rotate(-25deg);animation:ssFloat 10s ease-in-out infinite 3s}.ss-bg-icon:nth-child(6){width:150px;top:30%;right:5%;transform:rotate(-10deg);animation:ssFloat 8s ease-in-out infinite 1.5s}@keyframes ssFloat{0%,to{transform:translateY(0) rotate(var(--r, -15deg))}50%{transform:translateY(-18px) rotate(var(--r, -15deg))}}.ss-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2rem}.ss-logo{height:56px;width:auto;animation:ssPulse 4s ease-in-out infinite}@keyframes ssPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.03)}}.ss-divider{width:48px;height:3px;background:var(--primary-color);border-radius:2px;opacity:.7}.ss-tagline{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0;letter-spacing:.01em;line-height:1.4}.ss-sub{font-size:.9rem;color:var(--color-text-secondary);margin:0;letter-spacing:.02em;text-transform:uppercase}.ss-card{margin-top:1rem;background:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.9);border-radius:20px;padding:1.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;max-width:300px;box-shadow:0 4px 24px #648cc81f}.ss-card-icon{width:44px;height:44px;background:var(--primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary-color)}.ss-card-title{font-size:.95rem;font-weight:700;color:var(--color-text-primary);margin:0;text-align:center;line-height:1.4}.ss-card-desc{font-size:.8rem;color:var(--color-text-secondary);margin:0;text-align:center;line-height:1.5}.ss-hint{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);font-size:.78rem;color:var(--color-text-placeholder);letter-spacing:.05em;text-transform:uppercase;animation:ssBlink 2.5s ease-in-out infinite;white-space:nowrap;z-index:1}@keyframes ssBlink{0%,to{opacity:.4}50%{opacity:1}}.app{min-height:100vh;width:100%;margin:0;padding:0}#root{margin:0;padding:0;width:100%;min-height:100vh}
