*{box-sizing:border-box}: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;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;padding:0}button{font-family:inherit}a{color:#4caf50;text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow-x:hidden}.app:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(102,126,234,.3) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(118,75,162,.3) 0%,transparent 50%);pointer-events:none}.app-header{background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:1.25rem 2rem;box-shadow:0 4px 24px #0000001a;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(102,126,234,.1)}.app-header h1{margin:0;font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.header-actions{display:flex;align-items:center;gap:.75rem}.back-button{background:#667eea1a;border:2px solid rgba(102,126,234,.2);padding:.75rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:#667eea;display:flex;align-items:center;gap:.5rem}.back-button:hover{background:#667eea26;border-color:#667eea;transform:translate(-4px);box-shadow:0 4px 12px #667eea33}.back-button:active{transform:translate(-2px)}.app-main{padding:2rem 1rem;min-height:calc(100vh - 100px);position:relative;z-index:1}@media (max-width: 768px){.app-header{padding:1rem 1.25rem}.app-header h1{font-size:1.4rem}.back-button{padding:.625rem 1.25rem;font-size:.9rem}.app-main{padding:1.5rem .5rem}}html{scroll-behavior:smooth}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0000000d}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5568d3,#6a3d91)}.category-view{max-width:900px;margin:0 auto;padding:3rem 2rem;animation:fadeIn .5s ease-out}.category-view h2{text-align:center;color:#fff;margin-bottom:3rem;font-size:2.2rem;font-weight:700;text-shadow:0 2px 20px rgba(0,0,0,.2)}.category-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem}.category-button{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:24px;padding:3rem 2rem;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #0000001a;position:relative;overflow:hidden}.category-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,.5) 100%);opacity:0;transition:opacity .4s ease}.category-button:hover:before{opacity:1}.category-button:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px #0003}.category-button:active{transform:translateY(-4px) scale(1.01)}.category-button.stammkunden{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#667eea,#764ba2) border-box}.category-button.stammkunden:hover{box-shadow:0 16px 48px #667eea4d}.category-button.weitere{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#f093fb,#f5576c) border-box}.category-button.weitere:hover{box-shadow:0 16px 48px #f5576c4d}.category-icon{font-size:4rem;margin-bottom:1.5rem;text-align:center;transition:transform .3s ease}.category-button:hover .category-icon{transform:scale(1.15) rotate(5deg)}.category-title{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.75rem;text-align:center}.category-button.weitere .category-title{background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.category-description{font-size:1rem;color:#666;text-align:center;font-weight:500}@media (max-width: 768px){.category-view{padding:2rem 1rem}.category-view h2{font-size:1.75rem;margin-bottom:2rem}.category-buttons{grid-template-columns:1fr;gap:1.5rem}.category-button{padding:2.5rem 1.5rem}}.postal-code-view{max-width:1200px;margin:0 auto;padding:2rem;animation:fadeIn .5s ease-out}.postal-code-view h2{color:#fff;margin-bottom:2.5rem;font-size:1.8rem;font-weight:700;text-shadow:0 2px 20px rgba(0,0,0,.2)}.postal-code-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.25rem}.postal-code-button{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:16px;padding:2rem 1rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #0000001a;display:flex;flex-direction:column;align-items:center;gap:.75rem;position:relative;overflow:hidden}.postal-code-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease}.postal-code-button:hover:before{opacity:.1}.postal-code-button:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 24px #667eea4d}.postal-code-button:active{transform:translateY(-2px) scale(1.02)}.plz-number{font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}.file-count{font-size:.8rem;color:#666;background:#667eea1a;padding:.3rem .75rem;border-radius:12px;font-weight:600;position:relative;z-index:1}@media (max-width: 768px){.postal-code-view{padding:1.5rem 1rem}.postal-code-view h2{font-size:1.5rem;margin-bottom:1.5rem}.postal-code-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.postal-code-button{padding:1.5rem .75rem}.plz-number{font-size:1.5rem}}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:20px;padding:2rem;width:90%;max-width:550px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#333}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0000000d;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;color:#666}.modal-close:hover{background:#0000001a;color:#333;transform:scale(1.05)}.modal-close svg{width:20px;height:20px}.modal-form{display:flex;flex-direction:column;gap:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:600;color:#333}.form-group input{padding:.875rem 1rem;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;font-family:inherit;transition:all .2s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.form-group input.error{border-color:#ef4444}.form-group input.error:focus{box-shadow:0 0 0 3px #ef44441a}.error-message{font-size:.8125rem;color:#ef4444;font-weight:500}.modal-actions{display:flex;gap:.75rem;margin-top:.5rem}.btn-cancel,.btn-submit{flex:1;padding:.875rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover{background:#e0e0e0;color:#333}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-submit:active{transform:translateY(0)}@media (max-width: 768px){.modal-content{padding:1.5rem;width:95%}.modal-header h2{font-size:1.25rem}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%}}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:12px;box-shadow:0 8px 32px #0003;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;animation:slideUp .3s ease-out;min-width:250px}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-success{background:#4caf50f2;color:#fff}.toast-info{background:#2196f3f2;color:#fff}.toast-icon{font-size:1.5rem;font-weight:700;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:50%}.toast-message{font-size:1rem;font-weight:500}@media (max-width: 768px){.toast{bottom:1rem;min-width:200px;padding:.875rem 1.25rem}}.address-list-view{max-width:900px;margin:0 auto;padding:1rem;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1.5rem}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{color:#fff;font-size:1.1rem;font-weight:500}.address-list-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 8px 32px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.header-content h2{margin:0;font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress-stats{display:flex;align-items:center;gap:1rem}.progress-text{font-size:1rem;color:#666;font-weight:600}.progress-percentage{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.search-container{position:relative;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.search-icon{position:absolute;left:1rem;width:20px;height:20px;color:#999;pointer-events:none;z-index:1}.search-input{flex:1;padding:1rem 3rem;font-size:1rem;border:2px solid rgba(102,126,234,.2);border-radius:16px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #0000000d}.search-input:focus{border-color:#667eea;box-shadow:0 4px 20px #667eea33;transform:translateY(-2px)}.search-input::placeholder{color:#999}.clear-search{position:absolute;right:1rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#667eea1a;border:none;border-radius:50%;cursor:pointer;color:#667eea;font-size:1rem;font-weight:700;transition:all .2s ease}.clear-search:hover{background:#667eea33;transform:scale(1.1)}.clear-search:active{transform:scale(.95)}.progress-bar-container{width:100%;height:8px;background:#667eea26;border-radius:10px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:10px;transition:width .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.export-buttons{display:flex;gap:1rem;margin-bottom:1.5rem}.export-button{flex:1;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem 1.5rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #ddd;border-radius:16px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #00000014}.export-button svg{width:24px;height:24px}.export-button.csv{color:#16a34a;border-color:#16a34a}.export-button.csv:hover{background:#16a34a1a;transform:translateY(-2px);box-shadow:0 8px 24px #16a34a33}.export-button.json{color:#2563eb;border-color:#2563eb}.export-button.json:hover{background:#2563eb1a;transform:translateY(-2px);box-shadow:0 8px 24px #2563eb33}.address-list{display:flex;flex-direction:column;gap:.875rem}.street-groups{display:flex;flex-direction:column;gap:1rem}.street-group{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px #00000014;animation:slideIn .3s ease-out backwards}.street-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#667eea0d;border-bottom:2px solid rgba(102,126,234,.1);transition:background .2s ease}.street-header:hover{background:#667eea14}.street-toggle{flex:1;display:flex;align-items:center;gap:.75rem;background:none;border:none;padding:0;cursor:pointer;text-align:left}.chevron-icon{width:24px;height:24px;color:#667eea;transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.chevron-icon.expanded{transform:rotate(90deg)}.street-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:1rem}.street-name{font-size:1.1rem;font-weight:700;color:#333}.street-count{font-size:.95rem;font-weight:600;color:#667eea;background:#667eea26;padding:.25rem .75rem;border-radius:12px}.street-actions{display:flex;gap:.5rem;align-items:center}.add-address-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #ddd;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.add-address-button svg{width:20px;height:20px;color:#667eea}.add-address-button:hover{border-color:#667eea;background:#667eea0d;transform:scale(1.05)}.street-maps-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #ddd;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.street-maps-button svg{width:20px;height:20px;color:#4caf50}.street-maps-button:hover{border-color:#4caf50;background:#4caf500d;transform:scale(1.05)}.check-all-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #ddd;border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.check-all-button svg{width:20px;height:20px;color:#667eea}.check-all-button:hover{border-color:#667eea;background:#667eea0d;transform:scale(1.05)}.check-all-button.checked{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.check-all-button.checked svg{color:#fff}.check-all-button.partial{border-color:#667eea;background:#667eea1a}.add-grouping-button{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;cursor:pointer;box-shadow:0 8px 24px #667eea66;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100}.add-grouping-button svg{width:28px;height:28px;color:#fff}.add-grouping-button:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 12px 32px #667eea80}.add-grouping-button:active{transform:scale(1.05) translateY(0)}.street-addresses{padding:.75rem;display:flex;flex-direction:column;gap:.75rem;animation:expandDown .3s ease-out}@keyframes expandDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.address-item{display:flex;align-items:stretch;gap:1rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1rem;box-shadow:0 4px 16px #00000014;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideIn .3s ease-out backwards}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.address-item:nth-child(1){animation-delay:.05s}.address-item:nth-child(2){animation-delay:.1s}.address-item:nth-child(3){animation-delay:.15s}.address-item:nth-child(4){animation-delay:.2s}.address-item:nth-child(5){animation-delay:.25s}.address-item:hover:not(.checked){transform:translate(4px);box-shadow:0 8px 24px #667eea33}.address-item.checked{opacity:.65;background:#f5f5f5e6}.checkbox-button{background:none;border:none;padding:0;cursor:pointer;flex-shrink:0;display:flex;align-items:center}.checkbox{width:32px;height:32px;border:3px solid #ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;position:relative}.checkbox:hover{border-color:#667eea;transform:scale(1.1)}.checkbox.checked{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;animation:checkBounce .4s ease}@keyframes checkBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.checkmark-svg{width:18px;height:18px;fill:#fff;opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.4,0,.2,1)}.checkbox.checked .checkmark-svg{opacity:1;transform:scale(1)}.address-content{flex:1;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;padding:.5rem;text-align:left;border-radius:8px;transition:all .2s ease;gap:1rem}.address-content:hover{background:#667eea14}.address-content:active{transform:scale(.98)}.address-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.address-name{color:#333;font-size:1.05rem;font-weight:600;line-height:1.3}.address-street{color:#666;font-size:.95rem;font-weight:400;line-height:1.3}.address-user{display:flex;align-items:center;gap:.375rem;margin-top:.375rem;padding:.25rem .625rem;background:#667eea1a;border-radius:12px;color:#667eea;font-size:.8125rem;font-weight:600;width:fit-content}.address-user svg{flex-shrink:0}.address-item.checked .address-name{text-decoration:line-through;color:#999}.address-item.checked .address-street{text-decoration:line-through;color:#aaa}.maps-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.maps-icon-svg{width:28px;height:28px;fill:#667eea;transition:transform .2s ease}.address-content:hover .maps-icon-svg{transform:scale(1.15)}.delete-address-button{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ef44441a;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;color:#ef4444}.delete-address-button:hover{background:#ef444433;transform:scale(1.05)}.delete-address-button svg{width:20px;height:20px}.restore-address-button{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#22c55e1a;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;color:#22c55e}.restore-address-button:hover{background:#22c55e33;transform:scale(1.05)}.restore-address-button svg{width:20px;height:20px}.error{text-align:center;padding:3rem;color:#fff;background:#d32f2fe6;border-radius:16px;font-size:1.1rem;margin:2rem;box-shadow:0 8px 32px #d32f2f4d}.empty-state{text-align:center;padding:4rem 2rem;color:#fff;animation:fadeIn .5s ease-out}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.empty-state p{font-size:1.2rem;font-weight:500;opacity:.9}.file-selection-view{max-width:700px;margin:0 auto;padding:2rem;animation:fadeIn .5s ease-out}.file-selection-view h2{color:#fff;margin-bottom:.5rem;font-size:2rem;font-weight:700;text-shadow:0 2px 20px rgba(0,0,0,.2)}.file-selection-subtitle{color:#ffffffe6;margin-bottom:2rem;font-size:1.1rem}.file-selection-list{display:flex;flex-direction:column;gap:.875rem;margin-bottom:2rem}.file-selection-item{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid transparent;border-radius:16px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.file-selection-item:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea33;transform:translate(4px)}.file-selection-item input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border:3px solid #ddd;border-radius:6px;cursor:pointer;transition:all .3s ease;flex-shrink:0;position:relative}.file-selection-item input[type=checkbox]:hover{border-color:#667eea}.file-selection-item input[type=checkbox]:checked{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.file-name{flex:1;color:#333;font-size:1rem;font-weight:500}.checkmark{opacity:0;color:#fff;font-weight:700;position:absolute;left:1.4rem;font-size:.9rem;pointer-events:none;transition:opacity .3s ease}.file-selection-item input[type=checkbox]:checked~.checkmark{opacity:1}.load-files-button{width:100%;padding:1.25rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px #667eea66;position:relative;overflow:hidden}.load-files-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.load-files-button:hover:not(:disabled):before{left:100%}.load-files-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #667eea80}.load-files-button:active:not(:disabled){transform:translateY(0)}.load-files-button:disabled{background:linear-gradient(135deg,#ccc,#999);cursor:not-allowed;box-shadow:none}@media (max-width: 768px){.address-list-view{padding:.75rem}.address-list-header{padding:1.25rem;border-radius:16px}.header-content{flex-direction:column;align-items:flex-start;gap:.75rem}.header-content h2{font-size:1.5rem}.progress-stats{align-self:flex-end}.progress-text{font-size:.9rem}.progress-percentage{font-size:1.25rem}.address-item{padding:.875rem;gap:.75rem;border-radius:12px}.address-name{font-size:1rem}.address-street{font-size:.9rem}.checkbox{width:28px;height:28px}.checkmark-svg{width:16px;height:16px}.maps-icon-svg{width:24px;height:24px}.file-selection-view{padding:1.5rem 1rem}.file-selection-view h2{font-size:1.5rem}.file-selection-item{padding:1rem}.street-header{padding:.875rem 1rem}.street-name{font-size:1rem}.street-count{font-size:.85rem;padding:.2rem .5rem}.add-address-button,.check-all-button,.street-maps-button{width:36px;height:36px}.add-address-button svg,.check-all-button svg,.street-maps-button svg{width:18px;height:18px}.chevron-icon{width:20px;height:20px}.street-addresses{padding:.5rem;gap:.5rem}}@media (hover: none) and (pointer: coarse){.address-item:active:not(.checked){transform:scale(.98);background:#f0f0f0f2}.checkbox:active{transform:scale(.95)}.address-content:active{background:#667eea26}}.settings-menu-container{position:relative}.settings-button{background:#667eea1a;border:2px solid rgba(102,126,234,.2);border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);padding:0}.settings-button:hover{background:#667eea26;border-color:#667eea;transform:rotate(90deg);box-shadow:0 4px 12px #667eea33}.settings-icon{width:24px;height:24px;fill:#667eea;transition:transform .3s ease}.settings-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:16px;box-shadow:0 12px 48px #0003;min-width:320px;z-index:1000;animation:slideDown .3s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.settings-header h3{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-button{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;line-height:1;padding:0}.close-button:hover{background:#0000000d;color:#333}.settings-stats{padding:1.25rem 1.5rem;background:linear-gradient(135deg,#667eea0d,#764ba20d);border-bottom:1px solid rgba(0,0,0,.08)}.stat-item{display:flex;justify-content:space-between;align-items:center}.stat-label{color:#666;font-size:.95rem;font-weight:500}.stat-value{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-actions{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.settings-action-button{display:flex;align-items:center;gap:.875rem;padding:1rem;border:2px solid transparent;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:#00000005;color:#333;width:100%;text-align:left}.action-icon{width:20px;height:20px;flex-shrink:0}.settings-action-button.export{border-color:#667eea33}.settings-action-button.export .action-icon{fill:#667eea}.settings-action-button.export:hover{background:#667eea1a;border-color:#667eea;transform:translate(4px)}.settings-action-button.import{border-color:#4caf5033}.settings-action-button.import .action-icon{fill:#4caf50}.settings-action-button.import:hover{background:#4caf501a;border-color:#4caf50;transform:translate(4px)}.settings-action-button.reset{border-color:#f4433633}.settings-action-button.reset .action-icon{fill:#f44336}.settings-action-button.reset:hover{background:#f443361a;border-color:#f44336;transform:translate(4px)}.settings-info{padding:1rem 1.5rem;background:#667eea0d;border-top:1px solid rgba(0,0,0,.08)}.settings-info p{margin:0;font-size:.875rem;color:#666;line-height:1.5}@media (max-width: 768px){.settings-button{width:40px;height:40px}.settings-icon{width:20px;height:20px}.settings-dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;min-width:auto;border-radius:16px 16px 0 0;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.settings-header,.settings-stats,.settings-actions,.settings-info{padding:1rem 1.25rem}.settings-action-button{padding:.875rem}}.login-screen{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden}.login-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.gradient-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;animation:float 20s ease-in-out infinite}.blob-1{width:400px;height:400px;background:linear-gradient(135deg,#f093fb,#f5576c);top:-100px;left:-100px;animation-delay:0s}.blob-2{width:350px;height:350px;background:linear-gradient(135deg,#4facfe,#00f2fe);bottom:-80px;right:-80px;animation-delay:5s}.blob-3{width:300px;height:300px;background:linear-gradient(135deg,#43e97b,#38f9d7);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.login-card{position:relative;z-index:1;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:48px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-card.shake{animation:shake .5s ease-out}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.login-header{text-align:center;margin-bottom:32px}.login-icon{width:64px;height:64px;margin:0 auto 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff}.login-icon svg{width:32px;height:32px}.login-header h1{font-size:28px;font-weight:700;color:#1a1a1a;margin:0 0 8px}.login-header p{font-size:16px;color:#666;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{font-size:14px;font-weight:600;color:#333}.input-group input{padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;font-family:inherit;transition:all .2s ease;background:#fff}.input-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-group input::placeholder{color:#aaa}.login-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#dc2626;font-size:14px;animation:fadeIn .2s ease}.login-error svg{width:20px;height:20px;flex-shrink:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.login-button{padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.login-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #667eea4d}.login-button:active{transform:translateY(0)}@media (max-width: 768px){.login-card{padding:32px 24px;margin:20px;max-width:100%}.login-header h1{font-size:24px}.login-icon{width:56px;height:56px}.login-icon svg{width:28px;height:28px}.gradient-blob{filter:blur(40px)}.blob-1,.blob-2,.blob-3{width:250px;height:250px}}
