*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#333;line-height:1.5}.app{max-width:900px;margin:0 auto;padding:20px}header{text-align:center;padding:30px 0;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;border-radius:12px;margin-bottom:20px}header h1{font-size:1.8rem;margin-bottom:5px}header .subtitle{opacity:.9;font-size:1rem}.tabs{display:flex;gap:8px;margin-bottom:20px;background:#fff;padding:8px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.tabs button{flex:1;padding:12px 20px;border:none;background:transparent;cursor:pointer;border-radius:6px;font-size:1rem;transition:all .2s}.tabs button:hover{background:#f0f0f0}.tabs button.active{background:#1e40af;color:#fff}.street-selector{margin-bottom:20px}.street-selector .search-box input{background:#fff;box-shadow:0 2px 4px #0000001a}main{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 4px #0000001a;min-height:400px}main .empty{text-align:center;color:#666;padding:40px}footer{text-align:center;padding:20px;color:#666;font-size:.9rem}.coffee-button{margin:15px 0;opacity:.85;transition:opacity .2s}.coffee-button:hover{opacity:1}.coffee-button img{max-width:180px;height:auto}.search-box{position:relative;margin-bottom:20px}.search-box input{width:100%;padding:14px 18px;font-size:1rem;border:2px solid #ddd;border-radius:8px;outline:none;transition:border-color .2s}.search-box input:focus{border-color:#3b82f6}.suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;list-style:none;max-height:300px;overflow-y:auto;z-index:100}.suggestions li{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee}.suggestions li:last-child{border-bottom:none}.suggestions li:hover{background:#f5f5f5}.suggestions .zone{font-size:.85rem;color:#666}.loading{text-align:center;padding:40px;color:#666}.upcoming-section{margin-bottom:30px}.upcoming-section h3{margin-bottom:15px;color:#333}.upcoming-list{display:flex;flex-direction:column;gap:8px}.upcoming-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9f9f9;border-radius:8px;border-left:4px solid;gap:12px}.upcoming-item .upcoming-info{flex:1}.upcoming-item .date{font-weight:600;display:flex;align-items:center;gap:10px}.upcoming-item .type{color:#666}.calendar-buttons{display:flex;gap:6px;flex-shrink:0}.add-to-calendar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#374151;transition:all .2s;border:none;cursor:pointer}.add-to-calendar.google:hover{background:#4285f4;color:#fff}.add-to-calendar.apple:hover{background:#000;color:#fff}.badge{font-size:.75rem;padding:2px 8px;border-radius:12px;font-weight:600}.badge.today{background:#ef4444;color:#fff}.badge.tomorrow{background:#f59e0b;color:#fff}.badge.day-after{background:#3b82f6;color:#fff}.results-section{margin-top:20px}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;padding-bottom:15px;border-bottom:2px solid #e5e7eb}.results-header h2{color:#1f2937;font-size:1.4rem;margin:0}.results-header h3{color:#333}.export-buttons{display:flex;gap:8px}.export-buttons button{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#1e40af;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .2s}.export-buttons button:hover{background:#2563eb}.export-buttons button svg{flex-shrink:0}.bulky-notice{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin-bottom:20px;font-size:.95rem}.bulky-notice .bulky-icon{display:flex;align-items:center}.bulky-notice strong{color:#92400e}.bulky-notice .bulky-dates{color:#78350f;font-weight:500}.schedule-table{overflow-x:auto;margin-top:15px}.schedule-table table{width:100%;border-collapse:collapse;font-size:.9rem;table-layout:fixed}.schedule-table th,.schedule-table td{width:25%}.schedule-table th{padding:12px 8px;text-align:center;background:#f9fafb;border-bottom:3px solid #e5e7eb;font-weight:600;color:#374151;vertical-align:bottom;line-height:1.3}.schedule-table th .type-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}.schedule-table td{padding:10px 8px;border-bottom:1px solid #e5e7eb;color:#4b5563;text-align:center}.schedule-table tr:hover td{background:#f9fafb}.result-card{margin-bottom:30px;margin-top:25px}.result-card h3{color:#374151;margin-bottom:10px;font-size:1.1rem}.result-card h4{color:#666;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.collections-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.type-card{padding:15px;background:#f9f9f9;border-radius:8px;border-left:4px solid}.type-card h5{margin-bottom:10px;font-size:.95rem}.type-card ul{list-style:none;font-size:.9rem}.type-card li{padding:3px 0;color:#555}.type-card li.more{color:#999;font-style:italic}.calendar-view{padding:10px 0}.calendar-controls{margin-bottom:20px}.calendar-controls select{width:100%;padding:12px;font-size:1rem;border:2px solid #ddd;border-radius:8px;outline:none}.calendar-controls select:focus{border-color:#3b82f6}.month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.month-nav button{padding:10px 20px;background:#f0f0f0;border:none;border-radius:6px;cursor:pointer;font-size:1.2rem}.month-nav button:hover{background:#e0e0e0}.month-nav h3{text-transform:capitalize}.calendar{border:1px solid #ddd;border-radius:8px;overflow:hidden}.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f5f5f5}.weekday{padding:10px;text-align:center;font-weight:600;font-size:.9rem;color:#666;overflow:hidden}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day{padding:8px;border:1px solid #eee;display:flex;flex-direction:column;align-items:center;min-height:70px}.day.empty{background:#fafafa;min-height:70px}.day.has-events{background:#f0f7f0}.day-number{font-size:.9rem;font-weight:500;margin-bottom:4px}.day-events{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.event-dot{width:10px;height:10px;border-radius:50%;cursor:help}.legend{display:flex;gap:20px;justify-content:center;margin-top:20px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85rem}.legend-dot{width:12px;height:12px;border-radius:50%}.notifications-view{display:grid;gap:30px}.add-notification{background:#f9f9f9;padding:20px;border-radius:8px}.add-notification h3{margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#555}.form-group input,.form-group select{width:100%;padding:10px 12px;font-size:1rem;border:1px solid #ddd;border-radius:6px;outline:none}.form-group input:focus,.form-group select:focus{border-color:#3b82f6}.type-checkboxes{display:flex;flex-wrap:wrap;gap:15px}.checkbox-label{display:flex;align-items:center;cursor:pointer}.checkbox-label input{width:18px;height:18px;margin:0 10px 0 0;flex-shrink:0}.add-notification button[type=submit]{width:100%;padding:12px;background:#1e40af;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;margin-top:10px}.add-notification button[type=submit]:hover{background:#2563eb}.add-notification button[type=submit]:disabled{background:#ccc;cursor:not-allowed}.message{margin-top:15px;padding:10px;background:#d4edda;color:#155724;border-radius:6px;text-align:center}.notifications-list h3{margin-bottom:15px}.notifications-list .empty{color:#666;text-align:center;padding:30px}.notifications-list table{width:100%;border-collapse:collapse}.notifications-list th,.notifications-list td{padding:12px;text-align:left;border-bottom:1px solid #eee}.notifications-list th{font-weight:600;color:#555;background:#f9f9f9}.type-badge{display:inline-block;padding:2px 8px;border-radius:12px;color:#fff;font-size:.75rem;margin-right:4px}.delete-btn{padding:6px 12px;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.delete-btn:hover{background:#c82333}@media(max-width:600px){.app{padding:10px}header{padding:20px}header h1{font-size:1.4rem}.tabs button{padding:10px;font-size:.9rem}.collections-grid{grid-template-columns:1fr}.results-header{flex-direction:column;align-items:flex-start}.results-header h2{font-size:1.1rem}.export-buttons{width:100%}.export-buttons button{flex:1;padding:10px 12px;font-size:.8rem}.bulky-notice{flex-wrap:wrap;font-size:.9rem}.schedule-table{margin-left:-10px;margin-right:-10px;width:calc(100% + 20px)}.schedule-table th,.schedule-table td{padding:8px 6px;font-size:.8rem}.notifications-list table{font-size:.85rem}.notifications-list th,.notifications-list td{padding:8px}.calendar{overflow:hidden}.weekdays,.days{grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{padding:6px 1px;font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day,.day.empty{aspect-ratio:auto;min-height:50px;padding:3px 1px;overflow:hidden}.day-number{font-size:.75rem}.event-dot{width:7px;height:7px}.month-nav h3{font-size:1rem}.month-nav button{padding:8px 12px;font-size:1rem}.legend{gap:10px}.legend-item{font-size:.75rem}.legend-dot{width:10px;height:10px}}.confirmation-status{text-align:center;padding:40px 20px}.confirmation-status.success .success-icon,.confirmation-status.success .error-icon{font-size:4rem;margin-bottom:20px}.success-icon{color:#22c55e;font-size:4rem;margin-bottom:20px}.error-icon{color:#ef4444;font-size:4rem;margin-bottom:20px}.confirmation-status p{margin-bottom:15px;color:#333}.btn-primary{display:inline-block;padding:12px 24px;background:#1e40af;color:#fff;text-decoration:none;border-radius:6px;margin-top:20px}.btn-primary:hover{background:#2563eb}.btn-secondary{display:inline-block;padding:12px 24px;background:#6b7280;color:#fff;text-decoration:none;border-radius:6px;margin-left:10px}.btn-secondary:hover{background:#4b5563}.btn-danger{padding:12px 24px;background:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.btn-danger:hover{background:#b91c1c}.unsubscribe-page{max-width:500px;margin:0 auto}.notification-details{padding:20px}.notification-details h3{margin-bottom:20px;color:#333}.notification-details p{margin-bottom:10px}.unsubscribe-actions{margin-top:30px;display:flex;gap:10px;justify-content:center}.success-message{background:#d1fae5;color:#065f46;padding:15px;border-radius:8px;margin-top:15px;text-align:center}.success-message a{color:#065f46;text-decoration:underline}.notifications-info{background:#f0f9ff;padding:20px;border-radius:8px;border-left:4px solid #1e40af}.notifications-info h3{margin-bottom:15px;color:#1e40af}.notifications-info ol{margin-left:20px;margin-bottom:15px}.notifications-info li{margin-bottom:8px;color:#333}.notifications-info .note{font-size:.9rem;color:#666;font-style:italic}.unsubscribe-request{max-width:400px;margin:0 auto;text-align:center}.unsubscribe-request p{margin-bottom:20px;color:#555}.unsubscribe-request form{display:flex;flex-direction:column;gap:15px}.unsubscribe-request input{padding:12px;font-size:1rem;border:2px solid #ddd;border-radius:6px;text-align:center}.unsubscribe-request input:focus{border-color:#1e40af;outline:none}.error-text{color:#dc2626;margin-top:15px}.footer-links{margin-top:10px}.footer-links a{color:#1e40af;text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-separator{margin:0 10px;color:#ccc}.privacy-policy{max-width:700px;margin:0 auto}.privacy-policy section{margin-bottom:30px}.privacy-policy h2{color:#1e40af;font-size:1.3rem;margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.privacy-policy h3{color:#333;font-size:1.1rem;margin:15px 0 10px}.privacy-policy p{margin-bottom:12px;color:#444;line-height:1.7}.privacy-policy ul,.privacy-policy ol{margin:10px 0 15px 25px;color:#444}.privacy-policy li{margin-bottom:8px;line-height:1.6}.privacy-policy code{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-size:.9rem}.privacy-policy a{color:#1e40af}.privacy-policy a:hover{text-decoration:underline}.privacy-policy em{color:#666}.privacy-policy .btn-primary{margin-top:30px}.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#1e40aff7;color:#fff;padding:15px 20px;z-index:1000;box-shadow:0 -4px 12px #00000026}.cookie-content{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.cookie-content p{margin:0;flex:1;font-size:.95rem;line-height:1.5}.cookie-content a{color:#93c5fd;text-decoration:none}.cookie-content a:hover{text-decoration:underline}.cookie-buttons{display:flex;gap:10px;flex-shrink:0}.cookie-buttons button{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-accept{background:#22c55e;color:#fff}.btn-accept:hover{background:#16a34a}.btn-decline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)!important}.btn-decline:hover{background:#ffffff1a}@media(max-width:600px){.cookie-content{flex-direction:column;text-align:center}.cookie-buttons{width:100%;justify-content:center}}.contact-page{max-width:600px;margin:0 auto}.contact-intro{text-align:center;color:#555;margin-bottom:30px;font-size:1.05rem}.contact-form{background:#f9f9f9;padding:25px;border-radius:8px}.contact-form .form-group{margin-bottom:20px}.contact-form label{display:block;margin-bottom:8px;font-weight:500;color:#333}.contact-form input,.contact-form textarea{width:100%;padding:12px;font-size:1rem;border:2px solid #ddd;border-radius:6px;outline:none;transition:border-color .2s;font-family:inherit}.contact-form input:focus,.contact-form textarea:focus{border-color:#1e40af}.contact-form textarea{resize:vertical;min-height:120px}.contact-form .btn-primary{width:100%;padding:14px;font-size:1rem;border:none;cursor:pointer;margin-top:10px}.contact-form .btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.error-message{background:#fee2e2;color:#991b1b;padding:12px;border-radius:6px;margin-bottom:15px;text-align:center}.recaptcha-notice{margin-top:20px;font-size:.8rem;color:#888;text-align:center}.recaptcha-notice a{color:#666}.back-link{display:block;text-align:center;margin-top:25px;color:#1e40af;text-decoration:none}.back-link:hover{text-decoration:underline}
