*{box-sizing:border-box;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}html,body{width:100%;height:100%}.login-container{background-color:#f3f4f6;justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background-color:#fff;border-radius:.5rem;width:100%;max-width:28rem;padding:2rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.login-title{text-align:center;color:#1f2937;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.login-footer{text-align:center;color:#4b5563;margin-top:1rem;font-size:.875rem}.login-link{color:#2563eb;text-decoration:none}.login-link:hover{text-decoration:underline}.register-container{background-color:#f3f4f6;justify-content:center;align-items:center;height:100vh;display:flex}.register-card{background-color:#fff;border-radius:.5rem;width:100%;max-width:28rem;padding:2rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.register-title{text-align:center;color:#1f2937;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.form-group-mb6{margin-bottom:1.5rem}.form-input{box-sizing:border-box;border:1px solid #d1d5db;border-radius:.5rem;outline:none;width:100%;padding:.5rem .75rem}.register-footer{text-align:center;color:#4b5563;margin-top:1rem;font-size:.875rem}.register-link{color:#2563eb;text-decoration:none}.register-link:hover{text-decoration:underline}.active-visit-container{box-sizing:border-box;background-color:#f3f4f6;min-height:100vh;padding:2rem}.active-visit-header{background-color:#fff;border-radius:.5rem;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem 2rem;display:flex;box-shadow:0 4px 6px -1px #0000001a}.active-visit-header h1{color:#1f2937;margin:0;font-size:1.5rem;font-weight:700}.back-btn{color:#fff;cursor:pointer;background-color:#4b5563;border:none;border-radius:.375rem;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}.back-btn:hover{background-color:#374151}.notification-banner{color:#065f46;text-align:center;background-color:#a7f3d0;border-radius:.5rem;margin-bottom:1rem;padding:1rem;font-size:1rem;font-weight:600;animation:2s infinite pulse}.active-visit-card{background-color:#fff;border-radius:.5rem;max-width:600px;margin:0 auto;padding:2rem;box-shadow:0 4px 6px -1px #0000001a}.active-visit-card h2{color:#1f2937;text-align:center;margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.tracking-details p{color:#4b5563;margin:.75rem 0}.status-tag{text-transform:uppercase;color:#059669;font-weight:700}.location-box,.distance-box{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;margin-top:1.5rem;padding:1rem}.location-box h3,.distance-box h3{color:#1f2937;margin-bottom:.5rem;font-size:1rem}.distance-box.in-range{background-color:#ecfdf5;border-color:#10b981}.distance-box.out-of-range{background-color:#fef2f2;border-color:#ef4444}.distance-value{color:#1f2937;font-size:1.5rem;font-weight:700}.range-indicator{margin-top:.5rem;font-weight:600}.in-range .range-indicator{color:#059669}.out-of-range .range-indicator{color:#dc2626}.loading-text{text-align:center;color:#6b7280;margin-top:1rem;font-style:italic}.dashboard-container{box-sizing:border-box;background-color:#f3f4f6;min-height:100vh;padding:2rem}.dashboard-header{background-color:#fff;border-radius:.5rem;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem 2rem;display:flex;box-shadow:0 4px 6px -1px #0000001a}.dashboard-header h1{color:#1f2937;margin:0;font-size:1.5rem;font-weight:700}.user-info{color:#4b5563;align-items:center;gap:1rem;display:flex}.logout-btn{color:#fff;cursor:pointer;background-color:#ef4444;border:none;border-radius:.375rem;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}.logout-btn:hover{background-color:#dc2626}.error-alert{color:#b91c1c;background-color:#fee2e2;border-radius:.5rem;margin-bottom:1rem;padding:.75rem;font-size:.875rem}.success-alert{color:#047857;background-color:#d1fae5;border-radius:.5rem;margin-bottom:1rem;padding:.75rem;font-size:.875rem}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;display:grid}.dashboard-card{background-color:#fff;border-radius:.5rem;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a}.dashboard-card.full-width{grid-column:1/-1}.dashboard-card h2{color:#1f2937;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.form-group{margin-bottom:1rem}.form-label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input{box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;outline:none;width:100%;padding:.5rem .75rem}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.submit-btn{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:.5rem;width:100%;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}.submit-btn:hover:not(:disabled){background-color:#1d4ed8}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.empty-text{color:#6b7280;font-size:.875rem}.request-list{margin:0;padding:0;list-style:none}.request-item{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.request-item:last-child{border-bottom:none}.action-buttons{gap:.5rem;display:flex}.accept-btn{color:#fff;cursor:pointer;background-color:#10b981;border:none;border-radius:.375rem;padding:.375rem .75rem;font-weight:500}.accept-btn:hover{background-color:#059669}.deny-btn{color:#fff;cursor:pointer;background-color:#ef4444;border:none;border-radius:.375rem;padding:.375rem .75rem;font-weight:500}.deny-btn:hover{background-color:#dc2626}.status-badge{text-transform:uppercase;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.status-badge.pending{color:#d97706;background-color:#fef3c7}.status-badge.accepted{color:#059669;background-color:#d1fae5}.status-badge.denied{color:#dc2626;background-color:#fee2e2}.track-btn{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:.375rem;padding:.375rem .75rem;font-weight:500}.track-btn:hover{background-color:#1d4ed8}
